gpt4 book ai didi

javascript - 在 jquery 中的特定时间间隔的每次迭代中停止 .each 执行?

转载 作者:行者123 更新时间:2023-11-30 08:09:42 24 4
gpt4 key购买 nike

我正在尝试在我的 javascript 中创建以下功能:

$("mySelector").each(function(){

// Do something (e.g. change div class attribute)
// call to MyFunction(), the iteration will stop here as long as it will take for myFunction to complete

});

function myFunction()
{
// Do something for e.g. 5 seconds
}

我的问题是如何在 myFunction() 期间停止每次迭代?

最佳答案

不,那是不可能的。您必须以不同的方式对其进行编码,可能使用基于 .each 的当前索引的 setTimeout。

$("mySelector").each(function(i){

// Do something (e.g. change div class attribute)
// call to MyFunction(), the iteration will stop here as long as it will take for myFunction to complete
setTimeout(myFunction,i*5000);

});

function myFunction()
{
// Do something for e.g. 5 seconds
}

编辑:您也可以通过排队来完成:http://jsfiddle.net/9Bm9p/6/

$(document).ready(function () {
var divs = $(".test");
var queue = $("<div />");

divs.each(function(){
var _this = this;
queue.queue(function(next) {
myFunction.call(_this,next);
});
});
});

function myFunction(next) {
// do stuff
$(this).doSomething();

// simulate asynchronous event
var self = this;
setTimeout(function(){
console.log(self.id);
// go to next item in the queue
next();
},2000);

}

关于javascript - 在 jquery 中的特定时间间隔的每次迭代中停止 .each 执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12395774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com