2010-12-10 19 views
1

我現在得到的是:如何讓一個函數只在鼠標懸停指定的div時運行?

function() 
     { 
      setInterval("getSearch()",10000); 
     getSearch(); 

     } 
); 

但我想,如果將鼠標光標放在一個div裏面在我的網站這個區間暫停。我如何解決這個問題?當然,我需要給該div一個ID ..但一些輸入如何使JavaScript/jQuery的一部分非常讚賞。

編輯:更多的我的代碼..我不太知道從哪裏在這裏面的答案插入代碼:

$( 函數(){ setInterval的 ( 「getSearch()」, 10000); getSearch();

 } 
); 

TwitterCache = {}; 

功能getSearch() {

 var url = "http://search.twitter.com/search.json?q=test&refresh=6000&callback=?"; // Change your query here 
     $.getJSON 
     (
      url, 
     function(data) 
     { 
      if(data.results) // Checks to see if you have any new tweets 
      { 
       var i = -1, result, HTML='', HTML2=''; 
       while((result = data.results[++i]) && !TwitterCache[result.id]) 
       { 
         insert html.. blabla} 

回答

1

設置一個全局變量

var intID; 

指定的setInterval這個變量

intID = setInterval("getSearch()",10000); 

設置一個ID爲DIV

$("#divid").hover(function(){ 
    clearInterval(intID); 
}, 
function(){ 
    // set the interval again 
}); 
2

setInterval返回一個 「參考」,以您設置的時間間隔,允許你用window.clearInterval()來阻止它,這就是你必須做的:

var myInterval; 

function startMyInterval() { 
    if (!myInterval) { 
    // It's better to call setInterval width a function reference, than a string, 
    // also always use "window", in case you are not in its scope. 
    myInterval = window.setInterval(getSearch, 10000); 
    } 
} 

function stopMyInterval() { 
    if (myInterval) { 
    window.clearInterval(myInterval); 
    } 
} 

startMyInterval(); // Start the interval 

jQuery("#myDiv").hover(stopMyInterval, startMyInterval); 
+0

我一直在努力在我的代碼中實現這一點,但沒有任何運氣。我會用更多的代碼來編輯我的問題,並且我會很樂意提供一些額外的建議。 – Noop 2010-12-13 08:05:28

0

我認爲這應該工作:

$("#divID").hover(
    function() { 
    PauseTheInterValThing() 
    }, 
    function() 
    { 
    setInterval("getSearch()",10000); 
    getSearch(); 
    } 
); 
0

最簡單的方法,並在最短

簡單的方法是:在你的DOM就緒功能

<div id="yourDiv"> 
EXAMPLE TEXT 
</div> 

<script language="Javascript"> 

var interval = setInterval("getSearch()",1000); 

document.getElementById("yourDiv").addEventListener('mouseover', function() 
{ 
clearInterval(interval); 
},false); 

document.getElementById("yourDiv").addEventListener('mouseout', function() 
{ 
interval = setInterval("getSearch()",1000); 
},false); 
</script> 
0

插入這樣的:

var inv = setInterval("getSearch",1000); 
$('#yourdiv').mouseover(function(){ 
    clearInterval(inv); 
}).mouseout(function(){ 
    inv = setInterval("getSearch",1000); 
}) 
相關問題