私の問題は、タイマーを停止できないことです。
このフォーラムからタイムアウトを設定する方法がありました。識別子をグローバル変数に格納することになっています。偶然、「mydiv」を隠した後もまだ実行されていることがわかりました。
また、再帰関数が複数のインスタンスを作成するのか、タイムアウト用に 1 つだけ作成するのかを知る必要もあります。最初は毎回「var mytimer」を上書きすると思っていたからです。今、私はよくわかりません。
タイマーを停止する確実な方法は何でしょうか??
var updatetimer= function () {
//do stuff
setTimeout(function (){updatetimer();}, 10000);
}//end function
//this should start and stop the timer
$("#mybutton").click(function(e) {
e.preventDefault();
if($('#mydiv').is(':visible')){
$('#mydiv').fadeOut('normal');
clearTimeout(updatetimer);
}else{
$('#mydiv').fadeIn('normal');
updatetimer();
}
});
ありがとう、リチャード