通过jQuery在悬停时暂停setInterval

时间:2013-12-20 16:23:40

标签: javascript jquery

setInterval(function(){ $("#nav #nextslide").click()},10000);

有效。但我有a标签:

<a href="site.html" class="gallery form_click">click.</a>

我想,当鼠标悬停在图库按钮上时,暂停计时器。当mouseout时,setInterval再次激活。

试过这个但没有工作:

$('a.gallery').hover(function(ev){
    clearInterval(timer);
}, function(ev){
    setInterval(function(){ $("#nav #nextslide").click()},10000);
});

我该如何解决?

2 个答案:

答案 0 :(得分:5)

您需要将timer引用存储到变量中以便稍后清除

//declare it in a shared scope
var timer;

function startTimer() {
    timer = setInterval(function () {
        $("#nav #nextslide").click()
    }, 10000);
}

$('a.gallery').hover(function (ev) {
    clearInterval(timer);
}, function (ev) {
    startTimer();
});
startTimer();

答案 1 :(得分:0)

第1步:

function example(){  $("#nav #nextslide").click() //code you want ot execute inside setInterval() }

第2步:

var timer= setInterval(example(); ,10000);

第3步:

$('a.gallery').hover(function(ev){
    clearInterval(timer);
}, function(ev){
    timer=setInterval(example(); ,10000);
});

我已经测试过了,工作正常。