jquery怎么在父元素事件中禁止子元素的事件?
<divstyle="height:200px;background-color:green;"id="green"><divstyle="height:100px;ba...
<div style="height:200px;background-color:green;" id="green">
<div style="height:100px;background-color:orange;" id="orange">
</div>
</div>
$(function(){
$("#green").click(function(event){
alert("green click");
event.stopImmediatePropagation();
});
$("#green").click(function(){
alert("green click2");
});
$("#orange").click(function(){
alert("orange click");
});
});
其中
event.stopImmediatePropagation();
只能禁止green click2事件,用什么方法还可以禁止它的所有子元素的click事件(orange click)? 展开
<div style="height:100px;background-color:orange;" id="orange">
</div>
</div>
$(function(){
$("#green").click(function(event){
alert("green click");
event.stopImmediatePropagation();
});
$("#green").click(function(){
alert("green click2");
});
$("#orange").click(function(){
alert("orange click");
});
});
其中
event.stopImmediatePropagation();
只能禁止green click2事件,用什么方法还可以禁止它的所有子元素的click事件(orange click)? 展开
4个回答
展开全部
3种方法
1、在父元素事件的function中加if(event.target==this){ }
2、子元素事件function最后加event.stopPropgation();// 阻止事件冒泡
3、简单点,直接在子元素事件function最后加return false;// 阻止事件冒泡和默认操作
1、在父元素事件的function中加if(event.target==this){ }
2、子元素事件function最后加event.stopPropgation();// 阻止事件冒泡
3、简单点,直接在子元素事件function最后加return false;// 阻止事件冒泡和默认操作
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为orange click事件比green click事件先触发,所以后面的事件不能禁止前面的事件触发吧。
所以建议你在orange事件处理函数里判断要不要执行函数体里的语句。
$("#orange").click(function(){
if (/* 你想这样做应该有你的条件吧 */) {
alert("orange click");
}
});
});
来自:求助得到的回答
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$(function(){
$("#green").click(function(event){
alert("green click");
});
$("#orange").click(function(event){
alert("orange click");
return false;
});
});
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询