2014-06-11 98 views
0

我正在使用來自基金會的模式窗口,並且每打開一次它就會有一個警報。 重點是我想關閉模式窗口關閉時的間隔。我嘗試以下,但clearInterval功能似乎並沒有工作(模式被關閉後,警報仍genarated):無法清除模式窗口關閉動作

$(document).on('opened', '[data-reveal]', function() { 
      var interval = setInterval(function(){alert("O.K.");}, 3000); 
     if($("div#automate_message").height() > 100) { interval; } 
}); 
     $(document).on('close', '[data-reveal]', function() { 
     clearInterval(interval); 
}); 
+3

使變量'interval'全局。在$(document).on('opened'...)之上聲明它'' –

回答

1

在代碼中的變量interval超出範圍的,當你試圖clearInterval

所以,首先聲明全局變量interval

在全球範圍內聲明的變量稱爲:GLOBAL VARIABLES - 它的值是 訪問和修改整個到處程序。

試試這個:

var interval = null; 
$(document).on('opened', '[data-reveal]', function() { 
    interval = setInterval(function(){alert("O.K.");}, 3000); 
    if($("div#automate_message").height() > 100) { interval; } 
}); 

$(document).on('close', '[data-reveal]', function() { 
    clearInterval(interval); 
}); 
+0

O.K.我忘記了範圍,謝謝 – user3253748

+0

@ user3253748:您的歡迎。你可以接受答案作爲一個正確的答案! :)因爲它可以幫助其他用戶找到解決方案。 –

+0

沒問題,我已經做了。 – user3253748

1

初始化變量intervalglobal variable即全球範圍內,以便它可以在任何地方訪問。

//global scope 
var interval = null; 

$(document).on('opened', '[data-reveal]', function() { 

     //local scope 

     interval = setInterval(function(){alert("O.K.");}, 3000); 
     if($("div#automate_message").height() > 100) { interval; } 
}); 

$(document).on('close', '[data-reveal]', function() { 
     clearInterval(interval); 
}); 
+0

作品,謝謝:) – user3253748