美文网首页
事件与冒泡 --(微信小程序)

事件与冒泡 --(微信小程序)

作者: 1CC4 | 来源:发表于2020-03-17 18:06 被阅读0次

    1、事件分类

    冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递。
    非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递。

    2、事件绑定

    1、普通事件
    bindtap = " " <==等价==> bind : tap = " "

    2、绑定并阻止事件冒泡
    catchtap = " "

    <view id="outer" bindtap="handleTap1">
      outer view
      <view id="middle" catchtap="handleTap2">
        middle view
        <view id="inner" bindtap="handleTap3">
          inner view
        </view>
      </view>
    </view>
    

    inner view点击执行:
    handleTap3>>handleTap2

    • catcht会阻止之后的事件(子标签中的事件)执行

    3、互斥事件绑定
    mut-bind:tap = " "

    <view id="outer" mut-bind:tap="handleTap1">
      outer view
      <view id="middle" bindtap="handleTap2">
        middle view
        <view id="inner" mut-bind:tap="handleTap3">
          inner view
        </view>
      </view>
    </view>
    

    inner view点击执行:
    handleTap3>>handleTap2

    outer view点击执行:
    handleTap1>>handleTap2

    • mut-bind 触发后,如果其他节点上也有 mut-bind,则其他节点上的 mut-bind 绑定函数不会被触发,但 bind 绑定函数和 catch 绑定函数依旧会被触发。

    4、事件的捕获阶段
    capture-bind:touchstart = " "

    <view id="outer" bind:touchstart="handleTap1" capture-catch:touchstart="handleTap2">
      outer view
      <view id="inner" bind:touchstart="handleTap3" capture-bind:touchstart="handleTap4">
        inner view
      </view>
    </view>
    

    inner view点击 执行:
    handleTap2>>handleTap4>>handleTap3>>handleTap1

    • capture-bind捕获阶段由外向内执行,接着执行普通绑定事件(冒泡)

    相关文章

      网友评论

          本文标题:事件与冒泡 --(微信小程序)

          本文链接:https://www.haomeiwen.com/subject/uaatyhtx.html