我需要在多次点击之间停止动画

时间:2015-07-02 12:52:23

标签: jquery

我有这个功能和功能:stopPropagation();没有做我需要的。没有错误消息,它只是不起作用,当您多次单击元素时会发生传播。

更新:我需要多次点击该元素时停止传播,也许是"传播"这不是正确的词。

问题和我需要的东西:当你多次点击元素时,动画(隐藏和显示)会多次发生。我需要它只发生一次

这是真正的代码:

$('#block-menu-menu-men-gesto ul.menu > li a.parent').click(function(e) {
  e.preventDefault();
  $('#block-menu-menu-men-gesto ul.menu ul:visible').hide("slow"); 
  $(this).parent().find('ul').show("slow");
  console.log('1111');
  e.stopPropagation();
});

1 个答案:

答案 0 :(得分:5)

  

当您多次单击该元素时,动画(隐藏和显示)会多次发生。我需要它只发生一次

要实现此目的,您可以使用stop()清除任何排队的动画,然后再开始下一个动画。试试这个:

$('#block-menu-menu-men-gesto ul.menu > li a.parent').click(function(e) {
    e.preventDefault();
    $('#block-menu-menu-men-gesto ul.menu ul:visible').stop().hide("slow"); 
    $(this).parent().find('ul').stop().show("slow");
});

stopPropagation用于防止事件冒泡DOM,这与您的问题无关。