以下のdivは jQuery ポップアップ ダイアログに追加され、ダイアログが閉じられると削除されます。
背後にあるアイデアは、ボタンをクリックするだけでグラフ データを自動更新できるようにすることです。
$('<div/>', {
style: "position:absolute; top:39px; left:34px;z-index:1",
click: function(){
var imgSrc = $(this).find("img").attr('src');
if(imgSrc=="images/green-circle.png"){
imgSrc="images/black-circle.png";
//how to stop calling the refresh function? <--------------
}
else{
imgSrc="images/green-circle.png";
//Call refresh function every 60 sec
}
$(this).find("img").attr('src', imgSrc);
}
}).prepend('<img id="theImg" width="20" height="20" src="images/black-circle-md.png" />').prependTo($(divHolder).parent());
タイマーを開始および停止する方法の例を次に示します。
var timer;
function startTimer() {
timer=setInterval(function(){refreshData()},1000);
}
function stopTimer() {
learInterval(timer);
}
refreshData(){
// do some work here
}
スクリーンショット
質問は、関数timer
内のクリック間で varへの参照を保持する方法ですか? click: function(){}
複数のポップアップ ダイアログがアクティブになる可能性があるためです。データの更新は、異なるポップアップ ダイアログに対して個別に実行できる必要があります。