jQuery 3.5.1 给window注册load事件不起作用

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
</head>

<body>

</body>
<script>
    $(document).ready(function () {
        $(window).on("load", function () {
            alert("load")
        })
    })
</script>

</html>
阅读 2.8k
1 个回答

$(document).ready$(window).load 的发生顺序只在于图片是否加载完成,而你的 html 里没有图片,所以在 ready 里挂载 load事件没有机会得到执行了, 试试下面的代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
</head>

<body>
    <img src="https://usercontent2.hubstatic.com/12938795_f1024.jpg" />
<script>
       $(window).on("load", function () {
            console.log("load1")
        }) 
    $(document).ready(function () {
            console.log("load2")
        $(window).on("load", function () {
            console.log("load3")
        })
    })
</script>

</body>
</html>

对比有图和没有图的情况,分别在控制台可以看到 load3,或看不见.