微信小程序 子元素事件不触发父元素事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序 子元素事件不触发父元素事件相关的知识,希望对你有一定的参考价值。

参考技术A bind事件绑定不会阻止冒泡事件向上冒泡
catch事件绑定可以阻止冒泡事件向上冒泡
当点击子集的 catchtap='child' 事件之后阻止冒泡事件向上冒泡,所以不会触发 bindtap='father'

微信小程序-bindtap事件子元素不传参

 
<ul id="tabBar">
    <li class="{{currentTabBar_s == 10?\'active\':\'\'}}" data-current="10" bindtap="swichTabN"><image src=\'../../images/icon/tab_MyTodo_s.png\' class=\'img_s\'></image><image src=\'../../images/icon/tab_MyTodo.png\' class=\'img_n\'></image><span>待办</span></li>
    <li class="{{currentTabBar_s == 11?\'active\':\'\'}}" data-current="11" bindtap="swichTabN"><image src=\'../../images/icon/tab_Customers.png\' class=\'img_n\'></image><image src=\'../../images/icon/tab_Customers.png\' class=\'img_s\'></image><span>客户</span></li>
    <li class="{{currentTabBar_s == 12?\'active\':\'\'}}" data-current="12" bindtap="swichTabN"><image src=\'../../images/icon/tab_Find.png\' class=\'img_n\'></image><image src=\'../../images/icon/tab_Find.png\' class=\'img_s\'></image><span>发现</span></li>
    <li class="{{currentTabBar_s == 13?\'active\':\'\'}}" data-current="13" bindtap="swichTabN"><image src=\'../../images/icon/tab_Achieve.png\' class=\'img_n\'></image><image src=\'../../images/icon/tab_Achieve.png\' class=\'img_s\'></image><span>业绩</span></li>
  </ul>

  

 

 // 点击标题切换当前页时改变样式
  swichTabN: function (e) {
    var _this=this;
   var cur = e.target.dataset.current;    
 
  //点击li的子级元素,不进行值改变,解决方法把取值方式  由e.target.dataset.current;  修改为e.currentTarget.dataset.current即可
    var cur = e.currentTarget.dataset.current;
    console.log(_this.data.currentTabBar_s)
    console.log(_this.data)
    if (this.data.currentTabBar_s == cur) { console.log(123);return false; }
    else {
      console.log(5687)
      this.setData({
        currentTabBar_s: cur
      })
    }
  },

  

以上是关于微信小程序 子元素事件不触发父元素事件的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序-bindtap事件子元素不传参

微信小程序父子组件通信

微信小程序事件

微信小程序中子组件调用父组件的方法

微信小程序组件——bindtap和catchtap的区别

微信小程序子组件传参给父组件