我有一个jQuery对象数组。如果它们可见,我想与数组中的每个项目进行交互。我的流程是这样的:
更新(用例说明):
基本上我正在做的是对阵列执行一系列串行操作。 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对象数组。
答案 0 :(得分:2)
可以轻松完成:
var play = function() {
$(steps).filter(':visible').click();
};
<强>更新强>
var play = function() {
$(steps).each(function() {
$(this).filter(':visible').click();
});
};