我有代码:
jQuery(window).scroll(function() {
var scroll = jQuery(window).scrollTop();
//scroll_break = parseInt($(".header-container").height());
console.log( "pozitie scroll",scroll);
// console.log( "scroll_break",scroll_break );
var elem = $(".header-wrapper");
if (elem.hasClass ("class")) {
alert("sss");
}else{
alert("sssa");
}
});
当我运行此代码时收到以下错误(我已在下面附上截图以了解)
这是错误:
Uncaught TypeError: Cannot read property 'hasClass' of null
从这个错误发生了什么?
提前致谢!
编辑:
我创建了一个示例here
答案 0 :(得分:1)
这意味着elem实际上不是一个元素。我猜测.header-wrapper
不是HTML中存在的实际类
在您的浏览器javascript控制台中,输入$(".header-wrapper")
并按Enter键应返回所有匹配元素的数组,以便您进行检查。
为确保不会出现此错误,您应该更改if语句:
if (elem.length && elem.hasClass("class")) {
elem.length
部分在您调用.hasClass()之前检查它是否存在。
答案 1 :(得分:1)
我怀疑$
可能在另一个图书馆的其他图书馆中被使用,这就是您使用jQuery(window)
而不是$(window)
尝试:
var elem = jQuery(".header-wrapper");
答案 2 :(得分:0)
Javascript认为,您希望获得elem
变量的属性。那是因为你在函数名和参数的()
之间做了一个空格。去掉它!
错误消息说,elem
为空,因此上面一行中的jquery选择器没有找到任何内容。如果存在具有类header-wrapper
的元素,请查看您的代码。
jQuery(window).scroll(function() {
var scroll = jQuery(window).scrollTop();
console.log( "pozitie scroll",scroll);
elem = $(".header-wrapper");
if (elem.hasClass("class")) { //Without whitespace
alert("sss");
}else{
alert("sssa");
}
});
答案 3 :(得分:0)
你也可以发布html文件吗? b'coz js代码是完美的,html代码必须有一些问题,一些类名或什么的。