首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ie中js防止冒泡

在Internet Explorer(IE)浏览器中,使用JavaScript防止事件冒泡可以通过调用事件对象的cancelBubble属性来实现。事件冒泡是指一个事件发生在某个元素上,然后向上传播到它的父元素,直到到达文档根节点。有时,我们希望阻止这种传播,这时就可以使用cancelBubble属性。

以下是一个示例代码,展示了如何在IE中防止事件冒泡:

代码语言:txt
复制
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>防止事件冒泡示例</title>
<script type="text/javascript">
function stopBubble(event) {
    // 兼容IE和其他浏览器的事件对象获取方式
    event = event || window.event;
    if (event.stopPropagation) {
        // 非IE浏览器
        event.stopPropagation();
    } else {
        // IE浏览器
        event.cancelBubble = true;
    }
}
</script>
</head>
<body>
<div id="parent" style="border:1px solid red; padding:20px;">
    父元素
    <button id="child" onclick="stopBubble(event)">点击我</button>
</div>
<script type="text/javascript">
document.getElementById('child').onclick = function() {
    alert('按钮被点击');
};
document.getElementById('parent').onclick = function() {
    alert('父元素被点击');
};
</script>
</body>
</html>

在这个示例中,当点击按钮时,会触发stopBubble函数,该函数会检查是否存在stopPropagation方法(非IE浏览器),如果存在则调用它来阻止事件冒泡。如果不存在(即在IE浏览器中),则设置cancelBubble属性为true来阻止事件冒泡。

这样,当你点击按钮时,只会弹出“按钮被点击”的提示框,而不会触发父元素的点击事件,即不会弹出“父元素被点击”的提示框。

需要注意的是,随着现代浏览器的普及和IE浏览器的逐渐淘汰,cancelBubble属性的使用已经越来越少。现代浏览器普遍支持stopPropagation方法,因此在实际开发中,推荐使用stopPropagation来进行事件冒泡的控制。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

js事件防止冒泡

事件处理程序中的变量event保存着事件对象。而event.target属性保存着发生事件的目标元素。这个属性是DOM API中规定的,可是没有被全部浏览器实现 。...通过.target,能够确定DOM中首先接收到事件的元素(即实际被单击的元素)。...停止事件传播 事件对象还提供了一个.stopPropagation()方法,该方法能够全然阻止事件冒泡。...与.target类似,这种方法也是一种纯JavaScript特性,但在跨浏览器的环境中则无法安全地使用 。 只是,仅仅要我们通过jQuery来注冊全部的事件处理程序。就能够放心地使用这种方法。 以下。...假设想要同一时候停止事件传播和默认操作,能够在事件处理程序中返回false。这是对在事件对象上同一时候调用.stopPropagation()和.preventDefault()的一种简写方式。

2.5K40
  • JQuery IE下如何阻止keydown事件冒泡

    今天凑巧碰到一件怪事: 1.问题描述: 根据用户输入的内容按回车键作查询时,在IE下一直会触发一个Button按钮;IE下只有Button才会有这个问题,如果是a标签就不会有这样的问题?...浏览器            e.preventDefault(); //阻止默认浏览器动作(W3C)         } else {  //IE中阻止函数器默认动作的方式            ...window.event.returnValue = false;          }         return false;     } 2.停止事件冒泡 function stopBubble...的stopPropagation()方法     } else { //否则,我们需要使用IE的方式来取消事件冒泡      window.event.cancelBubble = true;     ...浏览器            e.preventDefault(); //阻止默认浏览器动作(W3C)         } else {  //IE中阻止函数器默认动作的方式

    1.6K30

    vue.js中实现阻止事件冒泡

    当父子元素中都有点击事件的时候,为了让触发子元素中的事件时,不去触发父元素中的事件,可以在子元素事件中添加stop来阻止事件冒泡。....stop 是阻止冒泡行为,不让当前元素的事件继续往外触发,如阻止点击div内部事件,触发div事件 .prevent 是阻止事件本身行为,如阻止超链接的点击跳转,form表单的点击提交 .self 是只有是自己触发的自己才会执行...,如果接受到内部的冒泡事件传递信号触发,会忽略掉这个信号 .capture 是改变js默认的事件机制,默认是冒泡,capture功能是将冒泡改为倾听模式 .once 是将事件设置为只执行一次,如 .click.prevent.once...阻止click事件冒泡(防止触发另一个事件)的方法 使用vue阻止子级元素的click事件冒泡。...方法二 可以自己写个阻止冒泡事件 然后在发生冒泡的元素中调用这个事件 @click="_stopPropagation($event)" methods:{ _stopPropagation

    6.6K10

    JS的事件冒泡和捕获

    事件机制 ---- 事件触发三个阶段: window往事件触发处传播,遇到注册的捕获事件会触发 传播到事件触发处时触发注册的事件 从事件触发处往window传播,遇到注册的冒泡事件会触发 事件触发一般会按照...|------------------------------------------- 但是有一个特例:如果给body中的子节点同时注册冒泡和捕获事件,事件触发会按照注册的顺序执行。...// 以下会先打印冒泡然后是捕获node.addEventListener( 'click', event => { console.log('冒泡') }, false)node.addEventListener...此时进入冒泡阶段,inner上的时间处理器得到执行 事件命中元素后开始向上冒泡,一路查找是否注册了冒泡阶段的祖先元素上的时间处理器。由于没有找到因此什么也没发生。...我们把时间注册在冒泡阶段(addEventListener的useCapture选项为false) var selector = document.querySelector.bind(document

    2.6K20

    JS防止站点被恶意保存

    很多同学网站都在用静态博客,安全轻量的同时也带来了些许麻烦,正如首图中那样,站点被别人全盘撸走,反而比自己文章关键字还高.自己辛辛苦苦的耕耘变成了别人的果实…所以本文提供一下通过JS手段防止网站被扒皮的手段...进入正题: 因为站点是纯静态的,所以没办法防止网页被扒走,但是我们可以让他扒走的网页 用不了… 对静态资源设置防盗链,判断可信域名…不过很多同学都放在 coding/github 之类的 没有这种功能的托管商...= top){ location.href="https://huai.pub"; } //防止被嵌套....把上面部分放到一个不得不运行且打开页面就运行的JS里面(不建议放到公共资源部分,比如 jQuery之类的 )…当然 需要按照注释修改为自己的参数; 之后将这条JS 加密 然后将第二部分放到页面底部的JS...中,同时也加密后再引入(siteprotect变量可以改名 且改掉值,最好使用随机值) 重要的是 JS一定要加密 且放到对站点效果影响大的JS中… 这样就算被别人恶意保存,基本也不会有大的问题了

    3.9K20

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券