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

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

最佳答案

when you click the element several time the animations (hide and show) happens several times. I need it to happen just one time

要实现此目的,您可以在开始下一个动画之前使用 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 中冒泡,这与您的问题无关。

关于jquery - 我需要在多次点击之间停止动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31185203/

相关文章:

javascript - 如何删除 Vue.js 中的元素?

javascript - 通过使用 Jquery 插入 javascript 加载 LinkedIn 成员(member)个人资料

jquery - 根据 <li> 的数量更改 <ul> 宽度

javascript - 如何禁用鼠标拖动单击任何图像?

javascript - 如何使用 jQuery 清除输入数组的所有元素

javascript - jQuery、ajax、在其他页面内显示页面(如 iframe)

javascript - 使用 jquery 定位父对象

javascript - 通过单击相同的链接更改 div

javascript - 在错误放置中使用 error.appendTo 方法

jQuery 检测 iPad,更改元素的字体大小