Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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
Javascript 结束JQuery事件冒泡_Javascript_Jquery_Event Handling_Jquery Animate_Jquery Events - Fatal编程技术网

Javascript 结束JQuery事件冒泡

Javascript 结束JQuery事件冒泡,javascript,jquery,event-handling,jquery-animate,jquery-events,Javascript,Jquery,Event Handling,Jquery Animate,Jquery Events,这真的很简单。。。但由于某种原因,我不能让它工作。 下面的JQuery只是通过单击为sideNav栏上的选择设置背景动画。 但是,如果我们要在半秒/秒范围内单击多个项目,则会有多个项目发生动画。(因此看起来像是同时选择了多个项目。) event.stopPropogation()应该取消动画事件,不是吗? 如果没有,我如何解决这个问题 $('.sidebar nav ul li').not('.user').click(function(event){ event.stopPropagati

这真的很简单。。。但由于某种原因,我不能让它工作。 下面的JQuery只是通过单击为sideNav栏上的选择设置背景动画。 但是,如果我们要在半秒/秒范围内单击多个项目,则会有多个项目发生动画。(因此看起来像是同时选择了多个项目。)

event.stopPropogation()
应该取消动画事件,不是吗? 如果没有,我如何解决这个问题

$('.sidebar nav ul li').not('.user').click(function(event){
  event.stopPropagation();
    
  $('.sidebar nav ul li').css('background-size', '15px');
  $('.sidebar nav ul li').removeClass('active');
    
  $(this).animate({
'background-size': '100%'
  }, 500);

  setInterval(function(){
$(this).addClass('active');
    return true;
  },501);
});

stopPropagation
的作用与它听起来的完全一样,它阻止事件向上传播到DOM中较高的父元素。
它不会停止动画,这将是
stop()


stopPropagation
的作用与它听起来的完全一样,它阻止事件向上传播到DOM中较高的父元素。
它不会停止动画,这将是
stop()


如果是动画,您应该更喜欢event.stop()而不是event.stopPropagation()。希望对您有所帮助。

如果是动画,您应该更喜欢event.stop()而不是event.stopPropagation()。希望有帮助。

显而易见。谢谢你的帮助!成功了。我现在尽量不在CSS3中使用JQuery动画,这真的让我感到很尴尬。太明显了。谢谢你的帮助!成功了。我现在尽量不在CSS3中使用JQuery动画,这真的让我很困惑。
$('.sidebar nav ul li').not('.user').click(function(){

    $('.sidebar nav ul li').stop(true, true)
                           .css('background-size', '15px')
                           .removeClass('active');

    $(this).animate({
      'background-size': '100%'
    }, 500, function() {
        $(this).addClass('active');
    });
});