除非鼠标悬停,否则setInterval会更新ajax列

时间:2011-10-12 14:07:31

标签: javascript jquery

我的网页设计中有一个专栏,由JS函数“refreshColumn()”定期刷新,并由AJAX更新。

setInterval('refreshColumn()',60000);

function refreshColumn() {
..make call with AJAX and load response to element...
document.getElementById('myColumn').innerHTML = xmlhttp.responseText;
}

这没关系,但是,当我的用户实际使用该列并刷新它们时,它不太实用!

是否有可能修改我已经拥有的内容,加入一个'onmouseover'事件来阻止该函数运行AJAX并刷新列,'onmouseout'允许脚本再次刷新?

1 个答案:

答案 0 :(得分:2)

您可以使用timeout代替interval,只需在mouseover上清除它,然后在mouseout重置。

<强> Live Demo

var timeout = setTimeout(refreshColumn,60000);

function refreshColumn() {
    // ajax call ect. reset the timeout
    timeout = setTimeout(refreshColumn,60000); 
}

element.onmouseover = function(){
   clearTimeout(timeout);
}

element.onmouseout = function(){
   timeout = setTimeout(refreshColumn,60000); 
}