Javascript 单击时跨越子对象
如何使此代码仅执行其按钮:Javascript 单击时跨越子对象,javascript,jquery,html,Javascript,Jquery,Html,如何使此代码仅执行其按钮: <span id="spanClicker"> <span id="subClicker"> [Click Me] </span> </span> [点击我] 就像这把小提琴:这是你要找的东西: $( '#subClicker' ).on
<span id="spanClicker">
<span id="subClicker">
[Click Me]
</span>
</span>
[点击我]
就像这把小提琴:这是你要找的东西:
$( '#subClicker' ).on( 'click', function (e) {
alert( 'subClicker' )
// Now here is the magic you want:
e.stopPropagation( )
} )
正如您所猜测的,e.stopPropagation()
允许您防止事件传播到其父元素。
您可以使用e.stopPropagation()
来防止两个元素的单击事件触发
另一方面,从jQuery 1.7开始,不推荐使用.live
函数。应该改用on。这样做
新javascript
$(function()
{
$("#spanClicker").live("click",function()
{
alert('Span Clicked');
});
$("#subClicker").live("click",function(e)
{
alert('Button Clicked');
e.stopPropagation();
});
});
与
关联的匿名函数。单击可以将事件作为第一个参数。调用事件对象的stopPropagation()
方法,以阻止click事件冒泡到事件目标元素的容器中。您是否询问如何使“仅单击我”按钮填充警报?是否可以在某些Html控件中使用[单击我]?像label或Span我相信他可以,但一开始如果他能更详细地回答他的问题就好了。@DownVorters:OP最初没有这个把戏,我希望这个新版本的答案对你来说足够了。对这个答案投反对票又有什么用呢?最初的答案不是这样的,我没有正确理解OP的问题,因为没有提供小提琴:)那么可能人们应该否决这个问题:)不是你的答案。