文章内容

2017/3/13 16:32:39,作 者: 黄兵

Uncaught TypeError: xxx.size is not a function

今天在用jquery的时候报错,提示如下:

Uncaught TypeError: guideLi.size is not a function

at goToFun (mousescroll.js:24)

at scrollFunc (mousescroll.js:52)


截图如下:

错误代码如下:

var goToFun = function() {
direct = 0;
if (index < 0) {
index = 0;
return;
}
if (index >= guideLi.size()) {
index = guideLi.size() - 1;
return;
}
$(".content").stop().animate({
scrollTop:height * index
}, 300, "swing", function() {
direct = 0;
});
guideLi.removeClass("on").eq(index).addClass("on");
};

引入的jquery 为2.2.1不报错误,引入的jquery 为3.1.1报错,经过查询资料,原来是这样的:

.size()方法从jQuery 1.8开始被废弃。使用.length属性代替。

.size()方法功能上等价于.length属性。但是.length 属性是首选的,因为它没有函数调用时的额外开销。

明白了之后开始修改源代码:

var goToFun = function() {
direct = 0;
if (index < 0) {
index = 0;
return;
}
if (index >= guideLi.length) {
index = guideLi.length - 1;
return;
}
$(".content").stop().animate({
scrollTop:height * index
}, 300, "swing", function() {
direct = 0;
});
guideLi.removeClass("on").eq(index).addClass("on");
};

.size()方法从jQuery 1.8开始被废弃。使用.length属性代替。

我觉的应该不是从1.8开始废弃的,应该在2.2版本以后开始废弃的。

终于解决了问题。运行之后再也没有报错了。

有什么问题在下面给我留言。谢谢!

分享到:

发表评论

评论列表