jQuery オブジェクトの配列があります。配列内の各アイテムが表示されている場合は、それらとやり取りしたいと思います。私のフローは次のようになります。
- すべての要素が jQuery オブジェクトである配列を作成します。
- オブジェクトは、表示される場合と表示されない場合があります。
- 配列の最初の要素から始めます。
- アイテムが表示されるまで待ちます。時間は任意です。3秒言ってください。表示された場合はステップ 5 に進み、表示されていない場合は「再生」機能から戻ります。// 更新しました
- 項目をクリックします。
- 操作する項目がなくなるまで、4 ~ 5 を繰り返します。
更新 (ユース ケースの明確化):
基本的に、私が行っているのは、アレイに対して一連のシリアル アクションを実行することです。ABCD、順番に。ただし、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');
});
};
steps が jQuery オブジェクトの配列と等しいと仮定します。