Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击时跨越子对象_Javascript_Jquery_Html - Fatal编程技术网

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的问题,因为没有提供小提琴:)那么可能人们应该否决这个问题:)不是你的答案。