我的html结构如下所示:
<div onclick='g(e)'>
<span><button>click me</button></span>
</div>
当我点击按钮标签时,click事件将传递给div.So我的问题是当click事件传递给span元素时,如果某些条件为真,那么我可以调用e.stopPropagation(),它不会传递给div元素,函数g不会运行。你想帮助我吗?谢谢。
答案 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