我有以下函数,在我的程序中调用一次。当没有用户交互时,它会在打印出数组时通过递归一遍又一遍地重新开始。但是,当用户单击链接时,应首先停止该函数(不再从数组输出),然后使用新参数再次启动。
function getText(mode){
var para = mode;
var url = "getText.php?mode=" + para;
var arr = new Array();
//get array via ajax-request
var $div = $('#text_wrapper');
$.each(arr, function(index, value){
eachID = setTimeout(function(){
$div.html(value).stop(true, true).fadeIn().delay(5000).fadeOut();
if(index == (arr.length-1)){
clearTimeout(eachID);
getText(para);
}
}, 6000 * index);
});
}
我的代码并没有真正停止该函数,而是再次调用它。这最终导致多个输出并相互重叠。如何确保该功能一次只停止并运行一个?
$(document).ready(function() {
$("#div1, #div2").click(function(e){
e.preventDefault();
var select = $(this).attr("id");
clearTimeout(eachID);
getText(select);
});
});