Rom*_*ych 4 html jquery event-propagation
我有一个元素,其中包含许多组件.让我们调用这个元素框.现在在盒子里面我有许多不同的元素,图片,文字和按钮.
示例:http: //jsfiddle.net/roman_khrystynych/FSCRH/
HTML:
<div id="container">
<div class="box">
<div class="button">Click</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
jQuery的:
$('#container').on("click", ".box", function(){
alert('box'); //only when anything in box except button
});
$('#container').on("click", ".button", function(){
alert('button'); //only when button clicked
});
Run Code Online (Sandbox Code Playgroud)
问题是,当单击按钮时,box元素也会激活其操作.基本上我希望它是一个例外,如果我点击按钮,常规框动作不会发生,而是按钮动作发生.有什么建议?
你所说的是事件冒泡.当您单击子元素时,它还会触发每个父级上的单击事件,直到DOM树的顶部.
stopPropagation()将取消冒泡dom树
试试这个:
$('#container').on("click", ".button", function(e){
e.stopPropagation()
alert('button'); //only when button clicked
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1147 次 |
| 最近记录: |