jQuery之onload与ready

window.onload与$(document).ready()

区别:

  • window.onload

    包括页面的图片加载完后才会回调(晚)。

    只能有一个监听回调。

  • $(document).ready()

    等同于:$(function(){})。

    页面加载完就回调(早)。

    可以有多个监听回调。

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>window.onload与$(document).ready()</title>
</head>
<body>

<h1>测试window.onload与$(document).ready()</h1>
<img id="logo" src="https://gss0.bdstatic.com/5bVWsj_p_tVS5dKfpU_Y_D3/res/r/image/2017-05-19/6fec71d56242b74eb24b4ac80b817eac.png">

<script type="text/javascript" src="../js/jquery.min.js"></script>
<script type="text/javascript">

    /*
     * 需求:
     * 1.直接打印img的宽度,观察其值
     * 2.在$(function(){})中打印img的宽度
     * 3.在window.onload中打印宽度
     * 4.在img加载完成后打印宽度
     */
    var $logo = $('#logo');
    console.log($logo.width());//0
    $(function () {
        console.log('$1()', $logo.width());
    });
    $(function () {
        console.log('$2()', $logo.width());
    });
    window.onload = function () {
        console.log('onload1()');
    };
    window.onload = function () {
        console.log('onload2()', $logo.width());
    };
    $logo.on('load', function () {
        console.log('load', this.width);
    });
</script>
</body>
</html>