在hover jquery上禁用单击触发器

时间:2013-06-07 12:12:39

标签: jquery

我有滑块设置,使用setInterval每5秒点击一次下一个按钮。我的计划是,当您将鼠标悬停在图像上时,此点击停止。我能想到这样做的唯一方法就是写一个新的setInterval来徘徊那么久以至于什么都不会发生。但这不起作用,因为它不会覆盖原始的。

有没有办法在jQuery中执行此操作?所有我想做的就是在悬停时停止点击触发....

     setInterval(function() {
      jQuery('.next_button').trigger('click');
    }, 1000);       

$(".main-slide img").hover(function () {

    setInterval(function() {
    jQuery('.next_button').trigger('click');
    }, 60000000);   

    },
function() {
    setInterval(function() {
     jQuery('.next_button').trigger('click');
    }, 1000);
    }
    );

4 个答案:

答案 0 :(得分:2)

你可以使用一个标志,当鼠标悬停在元素上时设置它,当鼠标离开元素时取消设置,并在触发点击之前检查它:

var mouse_is_over = false;

setInterval(function () {
    if (!mouse_is_over) $('.next_button').trigger('click');
}, 1000);

$(".main-slide img").on('mouseenter mouseleave', function(e) {
    mouse_is_over = e.type == 'mouseenter';
});

答案 1 :(得分:1)

创建具有单击函数定义的函数,然后:

$('.element').hover(
        function(){
            $(this).unbind('click')

        },function(){
            $(this).click(function(){
                definedBeforeClickFunction();

            });
        });

这样你就不需要清除间隔了。

答案 2 :(得分:0)

试试这个,

 $(document).ready(function(){
  slider();
    function slider(){
 var t =  setInterval(function() {
  jQuery('.next_button').trigger('click');
   }, 1000);  
 }     

$(".main-slide img").hover(function () {

  clearInterval(t);
}
   $(".main-slide img").mouseout() {
   slider();
 }
); 

 });

答案 3 :(得分:0)

您是否尝试删除setinterval?

然后尝试

var p = setinterval(function(){ //code  },time);

之后

clearInterval(p);