プログラムで一度呼び出される次の関数があります。ユーザーの操作がない場合、配列が出力されると、再帰によって何度も繰り返されます。ただし、ユーザーがリンクをクリックすると、関数は最初に停止され (配列からの出力はなくなります)、次に新しいパラメーターで再び開始されます。
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);
});
}
私のコードは実際には関数を停止しませんが、もう一度呼び出します。そして、それは最終的に複数の出力になり、互いに重なり合います。関数が一度に 1 つだけ停止して実行されるようにするにはどうすればよいですか?
$(document).ready(function() {
$("#div1, #div2").click(function(e){
e.preventDefault();
var select = $(this).attr("id");
clearTimeout(eachID);
getText(select);
});
});