1

iScroll 文档显示了一个典型的 iScroll 设置,如下所示。

var myScroll;
function loaded() {
    setTimeout(function () {
        myScroll = new iScroll('wrapper');
    }, 100);
}
window.addEventListener('load', loaded, false);

我的问题是如何调用滚动条?如果我使用:

var currentItem = 5;
myScroll.scrollToElement('.nav > li:nth-child('+currentItem+')', 300);

我得到一个错误。

Uncaught TypeError: Cannot call method 'scrollToElement' of undefined 
4

2 回答 2

0

我想您需要使用分配给 iScroll 的变量名称:

myScroll.scrollToElement ...

并不是

scroller.scrollTo ...

更新:

根据你后面的测试,这显然是一个时间错误。您可能myScroll.scrollToElement在执行超时功能之前调用了。

于 2012-11-27T16:03:56.887 回答
0

看起来您在第一个参数中添加了额外的引号。

删除引号,并尝试将您的代码更改为以下

myScroll.scrollToElement('.nav > li:nth-child(5)', 300);

如果您希望使查询动态化,请将数字替换为变量并添加加号以连接字符串。

var incNumber = 5;
myScroll.scrollToElement('.nav > li:nth-child('+ incNumber +')', 300);

似乎您的 iScroll 是在超时延迟的情况下创建的。在实例化库之前是否调用了您的函数?

于 2012-11-27T01:27:32.330 回答