button按钮onclick阻止该按钮的层div的onclick
div中有一个input按钮,层有个onclick事件,按钮有一个,怎么才能只执行按钮的onclick,不执行层的onclick,或者用按钮的onclick禁止掉层的bu...
div中有一个input按钮,层有个onclick事件,按钮有一个,怎么才能只执行按钮的onclick,不执行层的onclick,或者用按钮的onclick禁止掉层的 button按钮onclick阻止该按钮的层div的onclick
展开
2个回答
展开全部
有时候在document.onclick上绑定了事件,但在单击某些地方的时候不希望触发document上的click事件,则可以在方法里阻止其事件的冒泡,例如:
var btn = document.getElementById("btn");
btn.onclick=function(event){
alert('clicked');
event.stopPropagation();
}
document.body.onclick = function(event){
alert('body clicked');
}
有了event.stopPropagation();方法,就可以使在点击按钮时不触发下面的body.click事件。
在IE下不支持此方法,但可以利用其event.cancelBubble属性设置为true阻止。综上所述,例如:
var btn = document.getElementById("btn");
btn.onclick=function(event){
alert('clicked');
if(event.stopPropagation)
event.stopPropagation();
else
event.cancelBubble = true;
}
以上代码可以兼容的解决此问题。
var btn = document.getElementById("btn");
btn.onclick=function(event){
alert('clicked');
event.stopPropagation();
}
document.body.onclick = function(event){
alert('body clicked');
}
有了event.stopPropagation();方法,就可以使在点击按钮时不触发下面的body.click事件。
在IE下不支持此方法,但可以利用其event.cancelBubble属性设置为true阻止。综上所述,例如:
var btn = document.getElementById("btn");
btn.onclick=function(event){
alert('clicked');
if(event.stopPropagation)
event.stopPropagation();
else
event.cancelBubble = true;
}
以上代码可以兼容的解决此问题。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询