我有一些列表元素,当用户单击父列表元素时,这些元素将被折叠。问题是,当使用单击子列表项时,动画也会启动。
<ul>
<li class="folder">foo -- animation shall be enabled here
<ul>
<li><a href="http://google.com/" target="_blank">google</a></li>
<li><a href="#" >item2</a></li>
<li><a href="#" >item3</a></li>
<li><a href="#" >item4</a></li>
</ul>
</li>
<li class="folder">bar -- and animation shall be enabled here
<ul>
<li><a href="#" >item1</a></li>
<li><a href="#" >item2</a></li>
<li><a href="http://heise.de" target="_blank">Heise</a></li>
<li><a href="#" >item4</a></li>
</ul>
</li>
</ul>
如何通过点击子项来阻止动画? 提前谢谢!
答案 0 :(得分:1)
$('li').on("click",function(){
$( this ).parent( ".folder" ).stop( true, true );
});
将在此工作
答案 1 :(得分:0)
哦,找到我自己的解决方案
$('li.folder').on('click', function(event){
if(event.target === this){
$(this).children().animate({
height:'toggle'
},600);
}
});
谢谢你了!
答案 2 :(得分:0)
您可以停止立即传播所有事件,如下所示:
$(function() {
$('li li').on('click', function(e) {
e.stopImmediatePropagation();
alert('Hi from inner <li>!');
});
$('li').on('click', function() {
alert('Hi from parent <li>!');
});
});