我試過在這裏找到的解決方案:How do I add a delay in a JavaScript loop?但我無法讓它爲我工作。添加延遲For For循環
jQuery.fn.createEntry = function() {
$("#List").append('<span>New Entry</span>');
$("#List span").draggable({ grid: [30,45] });
}
jQuery.fn.tenTimes = function() {
for (var i = 1; i <= 10; i++){
$(document).createEntry();
}
}
在.createEntry()腳本中,新對象綁定到我擁有的.draggable()插件。我正在使用鍵盤快捷鍵(鍵控)來運行這個十進制功能()。如果我不止一次地按下按鍵,許多新對象將無法拖動。這似乎是隨機的,哪些對象無法拖動。我認爲也許我的快速按鍵會破壞那些失敗的綁定事件,但即使我放慢了速度,有些也不會拖延。
在繼續使用for循環之前,是否有某種方法可以檢查對象是否被正確綁定?有沒有更好的方法?不幸的是,這不是一個動畫,所以我不能使用.delay()。
SOLUTION
那是我去一個第三腳本處理使用appendTo(),以這些元素是導致該問題。
使用append()或appendTo()似乎使該對象與可拖動對象綁定,但它沿途丟失了左/頂部CSS,因此無法拖動它。我沒有找出一些.css()破解(每個值都是唯一的),而是簡單地創建了一個全新的元素,並複製相關數據,然後刪除()舊的元素。 Draggable在其他點正確綁定到它。有了這個,問題就解決了。
這很可能是問題在於createEntry()函數。 – 2012-04-17 04:42:58
你可以發佈'createEntry'嗎? – 2012-04-17 04:55:08
@joeframbach - 我添加了該功能;它非常裸露,所以我省略了它,但它可能是破壞它的語法。 – 2012-04-17 05:27:23