2013-11-21 44 views
0

我的HTML结构是这样如下:如何知道事件触及哪个元素?

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

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

+0

你描述的模式使用'stopPropagation'将会起作用。你为什么不能为条件编写代码? –

+0

尝试显示您的脚本是否存在条件。 –

回答

0
$('span').click(function(e){if(true){e.stopPropagation();e.preventDefault()};}); 
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").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

相关问题