2011-01-23 81 views
0

最近我開發了一個基於jQuery的自定義內容滑塊,與其他大多數滑塊不同,它不會顯示在兩個項目之間轉換時飛過的多個圖片,彼此不相鄰。它工作得很好,除了在動畫還沒有完成的時候點擊多個選擇器,將所有東西都搞定了。我決定實現一個排隊機制,可以延遲動畫開始,直到其他動畫結束。然而,更多的問題等待着我。出於某種奇怪的原因,排隊後的隊列函數被調用五次而不是一次。你可以在這裏看到這個動作:http://jsfiddle.net/QLLKt/embedded/result/。在動畫處於活動狀態時單擊任何滑塊選擇器。現在您應該看到功能排隊的時間顯示了五次,即使它應該只顯示一次。隊列中的單個函數被調用多次,但應該調用一次

我的問題是:爲什麼它的行爲像這樣,是否有任何治療方法?

回答

0

原來,問題的根源躺在這些代碼行:

$('.selector').queue('queue', function() { 
        var d = new Date(); 
        $('#result').append("<br/>" + "Queued at "+ d.getTime()); 

上的「選擇器」類查詢返回六個元素。因此它在eache元素的隊列中放置了一個函數,這導致函數被調用了六次。