javascript - JS中cancelBubble=true没有效果
PHPz
PHPz 2017-04-10 16:07:34
[JavaScript讨论组]

    
    

IE中点击p的时候还是会弹出hello,为什么?该怎么解决?

PHPz
PHPz

学习是最好的投资!

全部回复(3)
PHPz

原因是html标签嵌套问题:
button元素标签里面不能嵌套p元素标签,因为p元素的父元素必须是那些子元素为段落式元素的元素。
参考 WEB标准系列-HTML元素嵌套
题主的代码我测试的结果在FF和IE中都没有效果,在Chrome,Safari,Opera中可以,说明浏览器的容错能力不一样。

把button标签改为p标签就可以了……

为了弄清楚这个答案,我凌晨两点睡的,今天又弄了一上午,也是醉了……

巴扎黑
function subClickHandeler (e) {
        e = e || window.event;
        if ( e && e.preventDefault ){ 
            e.preventDefault(); 
       }else{
            e.returnValue = false; 
       }
    }
阿神

IE 8- 不支持以 addEventListener() 的方式来监听事件,而是采用 attachEvent()来监听事件。
一般可以借助一些库来帮助处理兼容性问题,如果自己写的话,加一个检查即可:

if (el.addEventListener) {
  el.addEventListener('click', subClickHandeler, false); 
} else if (el.attachEvent)  {
  el.attachEvent('onclick', subClickHandeler);
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号