我创建了一个内有按钮的表。
表格有onclick
个事件,还有里面的按钮
但是当我按下按钮时,事件会冒泡到桌面上。 (我得到2个警报)
所以我使用了ev.stopPropagation();
它的工作。但为了让它起作用,我必须这样做:
in html:
<input type='button' onclick='doWork(event);'/>
在Js:
function doWork(ev)
{
ev.stopPropagation();
alert('button');
}
event
。答案 0 :(得分:2)
IE不需要传递事件对象,我们可以使用window.event访问它。 Old IE versions have not supported e.stopPropagation。因此,出于跨浏览器兼容性的原因,您应该尝试这样做:
function doWork(e)
{
var evt = e || window.event;
if (evt.stopPropagation) {
evt.stopPropagation();
}
else {
evt.cancelBubble = true;
}
alert('button');
}
答案 1 :(得分:1)
我看不出有什么问题,是的,你需要对事件进行参数化,这样你就可以在事件处理程序中对它调用stopPropagation()。
答案 2 :(得分:1)
这是另一个way:
<table onclick="doWork();" border=2 style="width:70px;">
<input type='button' onclick='alert("button");'/>
function doWork(ev)
{
ev = ev || window.event;
var target = ev.target || ev.srcElement;
if(target.tagName.toUpperCase() !== 'INPUT'){
alert('table');
}
}