我有一個jQuery對象數組。如果可見,我想與數組中的每個項目進行交互。我的流程如下:使用jQuery推遲對象與jQuery集合/數組串聯使用
- 創建一個數組,其元素都是jQuery對象。
- 對象可能會或可能不可見。
- 從數組中的第一個元素開始。
- 等待項目可見,時間是任意的。說3秒。如果變得可見,則轉到步驟5,否則從「播放」功能返回。 //更新
- 單擊該項目。
- 重複4-5,直到沒有更多項目要與之交互。
UPDATE(澄清的用例):
基本上我在做什麼是執行一系列的陣列上的串行操作。 A-B-C-D。但是,當A創建B的元素並且B已經被檢查過,如果它是可見的,則可能存在問題。它不會被點擊。
我一直在尋找jQuery的延期對象,但我在如何實現它的損失。這如何實現?是否有使用延遲對象的替代方法?
根據@ jmort的建議,我會附上我到目前爲止的內容。
var play = function() {
var dfds = [];
$(steps).each(function(i, v) {
dfds[i] = $.Deferred();
});
$.when.apply(null, dfds).then(function(){
console.log('all done');
});
};
假設步驟等於jQuery對象數組。
也許包括到目前爲止還是你已經嘗試至少有一些你的代碼什麼的代碼示例與...合作。當你看到你的問題時,它給了每個人一些工作。 – jmort253
@ jmort253:好的。我可以做到這一點。謝謝。 –
沒有必要使用延遲,除非你想實現一些異步場景(「這裏是項目,這裏是當X發生時要做的事情;當X可能發生或甚至X可能是X時,我不知道該怎麼做「)。 – Jon