取消绑定和绑定点击事件

Unbind and Bind click events

本文关键字:绑定 事件 取消      更新时间:2023-09-26

我有一个图片库,里面有上一个和下一个按钮。因此,为了使图像更改,我编写了一个函数,该函数不断单击下一步按钮以更改图像。

function infiniteLoop(time){
    function f(){
        $('.image-nav-next').click() // click the next button
        timer = setTimeout(f, time)
    }
    f();
}

这对我来说很好用。但是现在我想在图像悬停时暂停单击事件。这意味着,当用户将鼠标悬停在图库中的图像上时,只要鼠标悬停在该图像上,它就应该显示相同的图像。当用户从图像中删除光标时,库将再次开始工作并像以前一样更改图像。我尝试了以下方法-

$('.myimg').mouseover(function(){         
    $('.image-nav-next').unbind('click');
});

然后

$('.myimg').mouseout(function(){          
    $('.image-nav-next').bind('click');
});

取消绑定工作正常,但重新绑定不起作用。知道吗?

你走错了路。

相反,您需要做的是清除鼠标输入clearTimeout(timer)上的计时器,并且在鼠标离开时,您可以通过调用infiniteLoop再次安排循环