Javascript jQuery在块$.each()完成后运行代码
使用以下代码:Javascript jQuery在块$.each()完成后运行代码,javascript,jquery,Javascript,Jquery,使用以下代码: $('#按钮')。在('click',函数(){ var longArray=searchArray;//假设它有100个或更多postalcodes init var shortarray=[],i,len; 对于(i=0,len=longArray.length;i
$('#按钮')。在('click',函数(){
var longArray=searchArray;//假设它有100个或更多postalcodes init
var shortarray=[],i,len;
对于(i=0,len=longArray.length;i
我尝试在$.each()完成后显示一条警报消息(用于调试)。因为每个都经过一个可能是1000个邮政编码的数组,所以我把它分成了100块。这是为了防止可怕的浏览器没有响应。这一切都很正常,但单击会立即触发警报
我已经尝试过几种方法:
在每个变量计数=0的上方;在EACH count++中,如果(count==longArray.length){ALERT}
但这也会立即触发警报PS3:感谢您思考这个问题,特别是您的评论/回答 我通过添加另一个setTimeout解决了这个问题 因此,我将警报(参见问题)替换为
警报(已完成的消息);
到
setTimeout(函数(){
//作为一个例子,我在我的问题和这里的回答中使用了alert。
//这当然可以是其他任何东西。例如,我使用它对结果进行排序。
警报(完成消息);
}, 0 );
这对我来说很有效,但可能不是最好的解决方法。因此,我仍在期待更有经验的人对这个问题或答案的看法。如果我不使用setTimeout,那么当用户搜索1000个postalcodes时,我会发现Chrome中的页面会变成无响应错误。我现在正在通过更改超时时间进行测试,我将在没有超时的情况下再次测试。我会让你知道结果的。@JonUleis我第一次尝试添加100ms而不是0ms。这导致我在100毫秒后收到警报。然后我通过注释来删除超时,这一点都没有影响。警报马上就来了。PS:谢谢你的评论!