Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
禁用悬停jquery上的单击触发器_Jquery - Fatal编程技术网

禁用悬停jquery上的单击触发器

禁用悬停jquery上的单击触发器,jquery,Jquery,我使用setInterval将滑块设置为每5秒单击一次“下一步”按钮。我的计划是,当你将鼠标悬停在图像上时,点击就会停止。我能想到的唯一方法是在悬停状态下编写一个新的setInterval,悬停时间太长,不会发生任何事情。但这不起作用,因为它没有覆盖原来的一个 在jQuery中有这样做的方法吗?我想做的就是停止悬停时的点击触发 setInterval(function() { jQuery('.next_button').trigger('click'); }, 1

我使用
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);
    }
    );
试试这个

 $(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();
 }
); 

 });

您可以使用一个标志,当鼠标位于图元上时设置该标志,当鼠标离开图元时取消设置该标志,并在触发单击之前检查该标志:

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';
});

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

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

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

            });
        });

这样您就不需要清除间隔。

是否要删除设置间隔

然后试试看

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

clearInterval(p);

为什么不调用一个函数来代替触发事件呢?我不明白你们想做什么,但你们用clearInterval取消了SetInterval。