事件冒泡之cancelBubble和stoppropagation

举报
骁M_M 发表于 2021/05/13 14:29:25 2021/05/13
【摘要】 div内的button的click会触发两次<html> <head> <title>冒泡测试</title> <script language="javascript" type="text/javascript"> function clickBtn(event) { event=event?event:...

div内的button的click会触发两次

<html>  
<head>  
    <title>冒泡测试</title>  
    <script language="javascript" type="text/javascript">  
        function clickBtn(event)  
        {  
            event=event?event:window.event;  
            event.stopPropagation();  
            alert("OK");  
        }  
    </script>  
</head>  
<body οnclick="alert('body');">  
  
    <div οnclick="clickBtn(event)"  style="width:100px;height:100px; background:#666;">  
        <input id="Button1" type="button" value="button" οnclick="alert('btn');" />  
    </div>  
    
</body>  
</html>  

事实上stoppropagation和cancelBubble的作用是一样的,都是用来阻止浏览器默认的事件冒泡行为。

不同:stoppropagation属于W3C标准,试用于Firefox等浏览器,但是不支持IE浏览器。

相反cancelBubble不符合W3C标准,而且只支持IE浏览器。所以很多时候,我们都要结合起来用。不过,cancelBubble在新版本chrome,opera浏览器中已经支持。

语法:e.stopPropagation();

参数e:表示事件传递的参数,代表事件的状态。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。