gpt4 book ai didi

jQuery每次完成时,触发函数

转载 作者:行者123 更新时间:2023-12-03 22:55:25 26 4
gpt4 key购买 nike

当 .each 完成循环我的元素时,如何启动重定向到新页面等功能?这是我当前的代码:

$('#tabCurrentFriends > .dragFriend').each(function(){ 
var friendId = $(this).data('rowid');
$.ajax({
type: "POST", url: "../../page/newtab.php", data: "action=new&tabname=" + tabname + "&bid=" + brugerid + "&fid=" + friendid,
complete: function(data){
}
});
});

最佳答案

您可以在所有 AJAX 请求完成后使用 $.when()/$.then() 重定向用户:

//create array to hold deferred objects
var XHRs = [];
$('#tabCurrentFriends > .dragFriend').each(function(){
var friendId = $(this).data('rowid');

//push a deferred object onto the `XHRs` array
XHRs.push($.ajax({
type: "POST", url: "../../page/newtab.php", data: "action=new&tabname=" + tabname + "&bid=" + brugerid + "&fid=" + friendid,
complete: function(data){
}
}));
});

//run a function when all deferred objects resolve
$.when(XHRs).then(function (){
window.location = 'http://stackoverflow.com/';
});

编辑 - 要对数组使用when,必须使用apply:

$.when.apply(null, XHRs).then(function () {
window.location = 'http://stackoverflow.com/';
});

jQuery AJAX 请求创建延迟对象,这些对象在完整函数触发时解析。此代码将这些延迟对象存储在一个数组中,当它们全部解析时,.then() 中的函数就会运行。

文档:

关于jQuery每次完成时,触发函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8460172/

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