atp*_*atp 30 jquery event-bubbling
我有一个带有链接的div:
<div id="myDiv">
<a href="http://www.lol.com">Lol</a>
</div>
Run Code Online (Sandbox Code Playgroud)
点击<div />
应该去某个地方,但点击孩子<a />
应该去www.lol.com.我从以前的问题和jQuery网站上看到.stopPropagation可以防止冒泡,但我如何防止泡沫向下(这不是必要的吗?).
Geo*_*off 46
事件只会冒泡.因此,在单击事件处理程序a
之前触发元素的单击事件处理程序div
.如果您需要您描述的行为,则需要将一个单击事件处理程序添加到一个停止传播到div的元素.
$("#myDiv a").click( function(event) {
event.stopPropagation();
} );
Run Code Online (Sandbox Code Playgroud)
并保留你在div上的任何事件处理程序.这应该允许事件执行它的默认操作,并防止div上的处理程序被触发.
如果您只想阻止对链接的点击,那么您可以更改div
元素的事件处理程序
$("#myDiv").click( function( event ) {
if( !$( event.target ).is( "a" ) )
{
// existing event handler
}
} );
Run Code Online (Sandbox Code Playgroud)