2012-11-27 53 views
1

iScroll文檔顯示如下所示的典型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 
+0

我遇到同樣的問題。你爲了這個工作需要改變什麼?我認爲在我的情況下,這不是超時 –

回答

0

我想你需要用你指定的iScroll給變量名:

myScroll.scrollToElement ... 

,而不是

scroller.scrollTo ... 

更新:

根據你的後面的測試中,顯然是一個時間錯誤。在執行超時功能之前,您可以稱爲myScroll.scrollToElement

+0

我的例子中還有一個錯字,但它仍然會拋出錯誤。 –

+0

「myScroll」的控制檯產量是多少? – acme

+0

什麼都沒有,我已經刪除了現在的加載和超時,並且現在只是在全局範圍內實例化了iScroll,並且它正在工作。 –

0

看起來您正在第一個參數中添加額外的引號。

刪除引號,並試着改變你的代碼如下

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

如果你正在尋找使查詢動態的,可變的替換數量和添加加號來連接字符串。

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

它也似乎是你的iScroll創建超時延遲。在庫實例化之前調用函數嗎?

+0

這是我努力簡化的一個錯誤,真正的代碼與您的類似。 scroller.scrollToElement('。nav> li:nth-​​child('+ currentItem +')',300); –

+0

你是否繼續得到同樣的錯誤?你用JavaScript控制檯調用'$('。nav> li:nth-​​child(5)')。html()'來檢查它是否存在? – RekindledPhoenix

+0

它不存在。我不知道如何訪問它。如果你初始化加載函數外的iScroll,一切正常,但iScroll文檔說你應該以這種方式初始化它。我可能只是將它從代碼中全部拉出來,因爲它可以工作,但我只是好奇爲什麼我無法訪問myScroll。 –

相關問題