2014-10-27 35 views
0

我有一個彈出框通過jquery觸發,出現在右上角,給用戶有關他們在網站上做了什麼的信息。目前,上午X就可以點擊將其關閉,但通過這個腳本一段時間後它也消失:只FadeOut一個Jquery項目如果用戶沒有點擊它並使用它

setTimeout(function(){ $('#ratingtext-'+imgId+ItemType+Type2+'').fadeOut() }, 2500); 

這個盒子是向上和向右並意味着是不起眼這就是爲什麼我們使用淡出。

但是,我在評論框中添加了一個評論,因此他們評價一個評價項目後,他們也可以留下評論。

有沒有一種方法可以製作上述腳本,以便如果他們點擊或在該DIV中或使用它,DIV不會淡出,但是如果他們離開它,它仍會淡出?

+1

請你能提供更多的代碼? – Paddy 2014-10-27 18:21:39

+0

請在彈出框中顯示html。 – 2014-10-27 18:27:46

回答

1

如果保存返回值從setTimeout你可以調用clearTimeout它取消淡出。

事情是這樣的:

var timeoutID = setTimeout(...); 
$('#ratingtext-'+imgId+ItemType+Type2+'').one('mouseover', function() { clearTimeout(timeoutID); }); 
1

您可能需要使用clearTimeout()功能。 setTimeout返回一個ID,所以你可以通過調用該ID的clearTimeout函數來取消超時。所以,你可以說var id = setTimeout(function() { //some code });並呼籲clearTimeout(id)在它發生之前取消超時。

我希望這對你有幫助!

1

這是我會做:

JS:

<script> 
    $(document).ready(function() { 

     var myVar; 

     function start() { 
      myVar = setTimeout(function() { 
       $('#ratingtext-' + imgId + ItemType + Type2 + '').fadeOut(); 
      }, 2500); 
     } 

     function stop() { 
      clearTimeout(myVar); 
     } 

     start(); 

     $("button").click(function() { 
      stop(); 
      start(); 
     }); 
    }); 
</script> 

我希望這有助於:)

相關問題