冒泡现象和阻止事件冒泡2

 

冒泡现象:触发某元素的某个时间触发其父级元素的对应时间,从元素本身向上冒泡到Dom顶层

<body>
<div id="div1">
    <div id="div2">
        <div id="div3"></div>
    </div>
</div>
<script>
  /*  冒泡现象——点击里面的div :会触发里面div的点击事件和其父级的点击事件*/
    window.οnlοad=function(){
        var div1=document.getElementById("div1");
        var div2=document.getElementById("div2");
        var div3=document.getElementById("div3");

        div1.οnclick=function(){
           alert(1)
        }
        div2.οnclick=function(){
            alert(2)
        }
        div3.οnclick=function(){
            alert(3)
        }
    }
</script>
</body>

  

 阻止事件冒泡
<script>
  /*  冒泡现象——点击里面的div :会触发里面div的点击事件和其父级的点击事件*/
    window.onload=function(){
        var div1=document.getElementById("div1");
        var div2=document.getElementById("div2");
        var div3=document.getElementById("div3");

        div1.onclick=function( ){
           alert(1)

        }
        div2.onclick=function(){
            alert(2)
        }
        div3.onclick=function(ev){
            alert(3)
            var ev =event||window.event ;
            //阻止冒泡
            ev.stopPropagation();
             /*    ev.cancelBubble = true;   */

        }
    }
</script>

 



转载于:https://www.cnblogs.com/July-/p/5800544.html

### 如何在微信小程序中阻止事件冒泡 在微信小程序中,传统的 `event.stopPropagation()` `event.preventDefault()` 方法并不适用,因为这些方法主要用于 Vue 或 React 等框架,在微信小程序中的实现方式有所不同。 为了有效阻止事件冒泡,推荐使用 `catchtap` 替代 `bindtap` 来绑定点击事件。具体来说: - **`bindtap`**: 此属性允许事件正常触发并继续向上传播给父级元素。 - **`catchtap`**: 使用此属性可立即停止事件传播至任何上级节点[^2]。 #### 实战代码演练示例:阻止事件冒泡 下面是一个简单的例子来展示如何通过改变事件处理器的方式防止不必要的事件冒泡现象发生: ```html <!-- WXML 文件 --> <view class="parent" bindtap="handleParentTap"> Parent View <view class="child" catchtap="handleChildTap"> <!-- 注意这里用了 catchtap 而不是 bindtap --> Child View </view> </view> ``` ```javascript // JS 文件 Page({ handleParentTap(e) { console.log('Parent tapped'); }, handleChildTap(e) { console.log('Child tapped, but parent will not receive this event.'); } }) ``` 在这个案例里,当用户点击子视图(`.child`)时只会触发对应的处理函数而不会影响到其父容器(`.parent`)上的监听器;反之如果改回成 `bindtap`, 则两个级别的回调都会被执行. 值得注意的是,并非所有的内置组件都支持冒泡行为,默认情况下像 `<button>` 这样的控件产生的交互动作是非冒泡类型的,因此无需特别考虑它们之间的相互干扰问题[^4]. 另外需要注意一些特殊情况下的配置项设置不当也可能引起意外的冒泡效果,比如页面下拉刷新功能未被禁用的情况下即使调用了相应的 API 接口也无法完全抑制默认操作的发生[^5].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值