2010-07-06 70 views
0

我在文件 懷疑http://github.com/tkyk/jquery-history-plugin/blob/master/samples/ajax/ajax.jsjQuery的歷史(和書籤)插件可能有一個錯誤?

線13和14

  load(url); 
      $.history.load(url); 
在Firefox,鉻,和IE 8

,我看到一個1,2,或點擊3當頁面被加載兩次上。

確實是第13行「load(url);」可以被刪除,因爲$ .history.load(url)將觸發用$ .history.init()註冊的函數,該函數已經執行了load()。

熟悉包裝的人能否證實這一點? (這是我發現的最好的Ajax歷史和書籤庫,如果有人知道另一個好的,請告訴我們)。

回答

2

是的,你可以刪除load(url)電話,它會工作,會發生什麼init需要回調,如果位置散列改變(which it checks every 100ms)它會再次運行該回調。

這一部分:

$.history.init(function(url) { 
    load(url == "" ? "1" : url); 
}); 

該函數獲取運行每100ms,if the current location hash (or appState in the plugin) doesn't match what it was previously。除此之外,load()調用實際上是click處理程序,所以目前它正在立即運行,並且在0-100ms之後再次運行。

+0

很好......你對JavaScript很熟悉。我們使用的類似軟​​件包有這個問題:http://stackoverflow.com/questions/3162579/why-does-really-simple-history-javascript-library-fire-off-event-twice-in-ie-but你知道爲什麼嗎? – 2010-07-06 14:48:31

相關問題