我有这个函数,而函数: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/