小程序 事件

 什么是事件

  • 事件是视图层到逻辑层的通讯方式。
  • 事件可以将用户的行为反馈到逻辑层进行处理。
  • 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。
  • 事件对象可以携带额外信息,如 id, dataset, touches。  

 cancel  事件的使用方式

  catchtap不会冒泡,仅在当前元素触发

  在组件中绑定一个事件处理函数。如:做一个搜索框清空的效果

  在相对应的wxml文件中:

1 <icon class='icon_cancel' catchtap='cancel' type="cancel" size="20"/>
  • 在相应的Page定义中写上相应的事件处理函数
    1 // 点击清除搜索内容
    2   cancel: function() {
    3     this.setData({
    4       searchValue: ''
    5     })
    6   },

    事件绑定和冒泡  

  事件绑定的写法同组件的属性,以 key、value 的形式。

  • key 以bindcatch开头,然后跟上事件的类型,如bindtapcatchtouchstart。自基础库版本 1.5.0 起,bindcatch后可以紧跟一个冒号,其含义不变,如bind:tap、、catch:touchstart
  • value 是一个字符串,需要在对应的 Page 中定义同名的函数。不然当触发事件的时候会报错。

bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡。

如在下边这个例子中,点击 inner view 会先后调用handleTap3handleTap2(因为tap事件会冒泡到 middle view,而 middle view 阻止了 tap 事件冒泡,不再向父节点传递),点击 middle view 会触发handleTap2,点击 outer view 会触发handleTap1

1 <view id="outer" bindtap="handleTap1">
2   outer view
3   <view id="middle" catchtap="handleTap2">
4     middle view
5     <view id="inner" bindtap="handleTap3">
6       inner view
7     </view>
8   </view>
9 </view>

 

  

  

posted @ 2018-05-31 10:59  梦想_行人  阅读(158)  评论(0编辑  收藏  举报