bindtap就是点击事件

在.wxml文件绑定:

  1. <text id='textId' data-userXxx='100' bindtap='tapMessage'>cilck here</text>

在一个组件的属性上添加bindtap并赋予一个值(一个函数名)

当点击该组件时, 会触发相应的函数执行

在后台.js文件中定义tapMessage函数:

  1. //index.js
  2. Page({
  3. data: {
  4. mo: 'Hello World!!',
  5. userid : '1234',
  6. },
  7.  
  8. // 定义函数
  9. tapMessage: function(event) {
  10. console.log(event.target.id); // 可获得
  11. console.log(event.target.name); // 无法获得, 通过target只能直接获取id
  12. console.log(event.target.dataset); // 要获得其它属性, 需要从dataset(数据集)中获取
  13. // userXxx为自定义的属性名, 但命名方式为:data-userXxx
        console.log(event.target.dataset.userXxx);//无法获得
        console.log(event.target.dataset.userxxx);//可获得
  1. }
  2. })

event封装的是该事件的信息, 如上通过它可得到一些数据

注意一点:

  1. <!-- data-userXxx,这个大写的X要改为-x -->
  2. <text id='textId' data-user-xxx='100' bindtap='tapMessage'>cilck here</text>

自定义数据时有两种写法:

定义为data-userXxx时,读取数据event.target.dataset.userxxx

定义为data-user-Xxx时,读取数据event.target.dataset.userXxx

事件冒泡就是指嵌套事件发生

如果多层标签嵌套, 里层事件发生后, 其外层会相应发生, 如:

  1. <view bindtap='handout'>
  2. outer
  3. <view bindtap='handmiddle'>
  4. middle
  5. <view bindtap='handinner'>inner</view>
  6. </view>
  7. </view>
  8.  
  9. handout: function () {
  10. console.log("out");
  11. },
  12.  
  13. handmiddle: function () {
  14. console.log("middle");
  15. },
  16.  
  17. handinner: function () {
  18. console.log("inner");
  19. }

点击inner三个事件都执行, 点击middlek执行handmiddle和handout, 点击out只执行handout

阻止事件冒泡行为: 将bindtap改为catchtap就行了, 只会触发自身的点击事件

  1. <view bindtap='handout'>
  2. outer
  3. <view catchtap='handmiddle'>
  4. middle
  5. <view bindtap='handinner'>inner</view>
  6. </view>
  7. </view>

需要理解是, 它阻断自身的冒泡行为

如上点击inner, 执行的是handinner和handmiddle两个函数

不管是不是自身触发的点击行为, 传到我这里, 我就将它阻断(不再向上传递)

微信小程序-bindtap事件与冒泡的更多相关文章

  1. 微信小程序bindtap与catchtap的区别

    1.什么是事件 (1) 事件是视图层到逻辑层的通讯方式. (2) 事件可以将用户的行为反馈到逻辑层进行处理. (3) 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数. (4) ...

  2. 微信小程序中事件

    微信小程序中事件 一.常见的事件有 类型 触发条件 最低版本 touchstart 手指触摸动作开始 touchmove 手指触摸后移动 touchcancel 手指触摸动作被打断,如来电提醒,弹窗 ...

  3. 微信小程序:事件绑定

    小程序中绑定事件,通过bind关键字来实现.如bindinput,bindtap(绑定点击事件),bindchange等. 什么是事件 事件是视图层到逻辑层的通讯方式. 事件可以将用户的行为反馈到逻辑 ...

  4. 微信小程序Dom事件实现

    面对微信小程序,可能没有像我们平时使用JQuery那样随心所欲.本篇就是为了解决这个问题. 请合理使用工具! 细节就不说了,直接备份一个实现的案例: wxml <view class=" ...

  5. 微信小程序自定义事件

    案例结构 首先,我还是会以案例的形式向大家讲解(这样也能方便大家更好的理解)简单介绍一下案例项目的内容(以上一章自定义组件的案例为基础)项目名称:component自定义子组件cpt父组件:logs ...

  6. 微信小程序(三)-事件绑定

    小程序事件绑定 https://developers.weixin.qq.com/miniprogram/dev/framework/view/two-way-bindings.html 1.数据 / ...

  7. 微信小程序的事件

    事件,视图层到逻辑层的一种通讯方式,或者将用户的行为返回到逻辑层,当我们在组件绑定事件之后,当我们触发事件,就会执行逻辑层绑定的事件,处理回调函数,当页面的事件触发之后 页面上元素一些额外事件,通过事 ...

  8. 微信小程序 - bindtap等事件传参

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

  9. 微信小程序-视图事件

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

随机推荐

  1. C++中find_if

    总结:find_if针对查找的对象中包含指针需要进行比较 find则更偏向于普通的数值或者字符比较 两者都可以应用于自定义的类,只需在类中重载==运载符 函数调用符()说白了其实就是代替函数指针,调用 ...

  2. PAT 1060 爱丁顿数(25)(STL-multiset+思路)

    1060 爱丁顿数(25 分) 英国天文学家爱丁顿很喜欢骑车.据说他为了炫耀自己的骑车功力,还定义了一个"爱丁顿数" E ,即满足有 E 天骑车超过 E 英里的最大整数 E.据说爱 ...

  3. 小明A+B

    /* 小明今年3岁了, 现在他已经能够认识100以内的非负整数, 并且能够进行100以内的非负整数的加法计算. 对于大于等于100的整数, 小明仅保留该数的最后两位进行计算, 如果计算结果大于等于10 ...

  4. Java中的权限修饰符

    What:访问控制权限是可以设置代码的访问范围. Where:访问权限既可以修饰类中的属性,又可以修饰类中的方法,而public和default还可以修饰类. 在同一个java文件里,公有类有且仅有一 ...

  5. How to Set Ckeditor ReadOnly Mode

    CKEditor API makes it possible to render the editor content read-only (and thus impossible for the u ...

  6. STL基础2:vector中使用结构体

    #include <iostream> #include <vector> #include <numeric> #include <algorithm> ...

  7. Mybatis简介、环境搭建和详解

    简介: 1.Mybatis  开源免费框架,原名叫iBatis,2010在google code,2013年迁移到github 2.作用: 数据访问层框架 2.1  底层是对JDBC的封装 3.myb ...

  8. 812. Largest Triangle Area

    static int wing=[]() { std::ios::sync_with_stdio(false); cin.tie(NULL); ; }(); class Solution { publ ...

  9. 2018.12.08 codeforces 939E. Maximize!(二分答案)

    传送门 二分答案好题. 题意简述:要求支持动态在一个数列队尾加入一个新的数(保证数列单增),查询所有子数列的 最大值减平均值 的最大值. 然而网上一堆高人是用三分做的. 我们先考虑当前的答案有可能由什 ...

  10. jquery遍历之parent()与parents()的区别 及 parentsUntil() 方法

    来自:http://blog.csdn.net/zm2714/article/details/8117746 .parent(selector) 获得当前匹配元素集合中每个元素的父元素,由选择器筛选( ...