为什么我得到"未捕获的TypeError:无法读取属性' body'未定义"?

时间:2015-08-11 17:09:32

标签: javascript jquery dom javascript-events event-handling

我的JS文件只是

jQuery(function ( $ ) {
    // make elements with class 'same-height-as-width' have the self-explanatory property
    $(window).resize(function ( ) {
        $('.same-height-as-width').each( function ( ) {
            var thisElement = $(this);
            thisElement.height(thisElement.width());        
        });
    });

    window.onscroll = function () {

        var body = document.body; //IE 'quirks'
        var document = document.documentElement; //IE with doctype
        document = (document.clientHeight) ? document : body;

        if (document.scrollTop == 0) {
            alert("top");
        }
    };

});

导致我麻烦的行是var body = document.body; //IE 'quirks'。错误

  

未捕获的TypeError:无法读取属性' body'未定义的

每次滚动时都会在控制台上打印

。然而,当我在控制台中输入document.body时,控制台中显示的元素不是undefined。我也尝试将window.onscroll移到j Query(function ( $ )之外,但我得到同样的错误。

1 个答案:

答案 0 :(得分:2)

那是因为JavaScript variable hoisting,但没有让你太多困惑,不要使用“document”作为变量的名称