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

最初のパラメータ内に引用符を追加しているようです。

引用符を削除し、コードを次のように変更してみてください

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 に答える
0

iScrollに割り当てた変数名を使用する必要があると思います。

myScroll.scrollToElement ...

ではなく

scroller.scrollTo ...

アップデート:

後者のテストによると、それは明らかにタイミングエラーでした。myScroll.scrollToElementタイムアウト関数が実行される前に呼び出した可能性があります。

于 2012-11-27T16:03:56.887 に答える