我有这个功能和功能: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();
});
答案 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,这与您的问题无关。