我怎么知道事件到达哪个元素?

时间:2013-11-21 11:01:49

标签: javascript jquery events

我的html结构如下所示:

<div onclick='g(e)'>
    <span><button>click me</button></span>
</div>

当我点击按钮标签时,click事件将传递给div.So我的问题是当click事件传递给span元素时,如果某些条件为真,那么我可以调用e.stopPropagation(),它不会传递给div元素,函数g不会运行。你想帮助我吗?谢谢。

2 个答案:

答案 0 :(得分:0)

$('span').click(function(e){if(true){e.stopPropagation();e.preventDefault()};});

答案 1 :(得分:0)

你可以尝试但是在你的情况下它总是按下按钮

在HTML中

<div rel="div">
    <span rel="span"><button>click me</button></span>
</div>
JS中的

$("button").click(function(e){
   console.log(e.target);
if($(e.target).attr("rel")=="span")
{
e.stopPropagation();
    alert("click on span");
    //f(e);
}
else if($(e.target).attr("rel")=="div"){
alert("click on div");

}
  else{
      alert("click on button");
    }

});

参见 demo

或者你想要你的工作然后在这个范围内的 div 上应用点击操作,按钮和div来 如下所示

$("div").click(function(e){
   console.log(e.target);
if($(e.target).attr("rel")=="span")
{
e.stopPropagation();
    alert("click on span");
    //f(e);
}
else if($(e.target).attr("rel")=="div"){
alert("click on div");

}
  else{
      alert("click on button");
    }

}); 

参见 demo