Saa*_*aad 1 html javascript jquery
我在这里托管了我的jQuery代码,https://jsfiddle.net/f7u2yqpe/,真的很想知道为什么它会永远结束循环.
HTML
<ul id='user_menu'>
<li>
<a class='shopping_cart'>click this</a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
jQuery的
$('#user_menu > li').click(function() { $(this).children('a:first').click(); } );
$('.shopping_cart').click(function(){ alert('hi') });
Run Code Online (Sandbox Code Playgroud)
因此,如果我点击click me它不应该只调用警报两次,一个用于li选择器,另一个用于.shopping_cart选择器.
原因是javascript中的事件冒泡.当对元素执行事件时,事件沿DOM传播并在目标元素的每个父元素上触发.当您单击a事件气泡时,li会再触发一次点击,a产生无限循环
关于事件冒泡:http://javascript.info/tutorial/bubbling-and-capturing
为了防止这种情况,您只需在事件上显式调用停止传播:
$('.shopping_cart').click(function(event){
event.stopImmediatePropagation()
alert('hi')
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |