的$。每個(外部創建函數的返回值),並使用一個標誌變量來確定按鈕是否被點擊了。我通常使用「窗口」聲明全局函數和變量。
var panicButtonClicked = false;
window.panicButtonClicked = panicButtonClicked;
var timeouts = [];
window.timeouts = timeouts;
$.each(someArray, function(index, value){
if(!panicButtonClicked)
{
timeouts.push(setTimeout(function(){
console.log(index);
}, 5000*index));
}
});
$('#panic-button').click(function(){
//the code that should stop the looping
panicButtonClicked = true;
$.each(timeouts, function (_, id) {
clearTimeout(id);
});
});
我已經包含由Jonathan Lonowski給出的for循環在我的編輯中。這個想法是相似的,除了你需要一個額外的變量來防止你的初始循環執行。這是否能解決您的問題?
非常感謝! – user759235 2012-07-12 12:22:59