猿问

JS中cancelBubble=true没有效果

Click

varbtn=document.getElementById('btn');
vardiv=document.getElementById('div');
functionclickHandeler(e){
alert('hello');
}
functionsubClickHandeler(e){
e=e||window.event;
if(e.stopPropagation)
e.stopPropagation();
else
e.cancelBubble=true;
}
btn.addEventListener('click',clickHandeler,false);
div.addEventListener('click',subClickHandeler,false);
IE中点击div的时候还是会弹出hello,为什么?该怎么解决?
猛跑小猪
浏览 684回答 2
2回答

莫回无

原因是html标签嵌套问题:button元素标签里面不能嵌套div元素标签,因为div元素的父元素必须是那些子元素为段落式元素的元素。参考WEB标准系列-HTML元素嵌套题主的代码我测试的结果在FF和IE中都没有效果,在Chrome,Safari,Opera中可以,说明浏览器的容错能力不一样。把button标签改为div标签就可以了……为了弄清楚这个答案,我凌晨两点睡的,今天又弄了一上午,也是醉了……
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答