Why am I getting "Uncaught TypeError: Cannot read property 'body' of undefined"?
Why am I getting "Uncaught TypeError: Cannot read property 'body' of undefined"?
我的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'
。错误
Uncaught TypeError: Cannot read property 'body' of undefined
每次滚动时都会打印到控制台。然而,当我在控制台中键入 document.body
时,控制台中显示的元素不是 undefined
。我也试过将 window.onscroll
移到 jQuery(function ( $ )
之外,但我得到了同样的错误。
那是因为 JavaScript variable hoisting,但不要让您感到困惑,不要使用 "document" 作为变量的名称
我的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'
。错误
Uncaught TypeError: Cannot read property 'body' of undefined
每次滚动时都会打印到控制台。然而,当我在控制台中键入 document.body
时,控制台中显示的元素不是 undefined
。我也试过将 window.onscroll
移到 jQuery(function ( $ )
之外,但我得到了同样的错误。
那是因为 JavaScript variable hoisting,但不要让您感到困惑,不要使用 "document" 作为变量的名称