我需要帮助在执行“code()”之间插入一些延迟。例如,我希望它每4秒钟一个接一个地执行。就像第一个执行一样,4秒后代码再次执行,所以对于给定类的每个元素。
我也在“code()”中使用.this所以我需要它留在那里因为例如我获取每个给定类的id并使用它。
var myFunction = function(){
$(".someClass").each( function(){
if( this.style.opacity != "0.5" ){
code();
}
});
};
答案 0 :(得分:3)
您可以简单地使用each
循环索引来使用超时来延迟它:
var myFunction = function() {
$(".someClass").each(function(i) {
setTimeout(function() {
if (this.style.opacity != "0.5") {
code();
}
}.bind(this), i * 4000); // bind relevant context
});
};
其他版本,使用filter()
:
var myFunction = function() {
$(".someClass").filter(function(){
return this.style.opacity != "0.5";
}).each(function(i) {
setTimeout(code.bind(this), i * 4000);
});
};