微信小程序bindtap点击事件与事件冒泡

原文链接:https://www.cnblogs.com/lhm166/articles/9947383.html

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

<view bindtap=‘handout‘>
   outer
   <view bindtap=‘handmiddle‘>
     middle
     <view bindtap=‘handinner‘>inner</view>
   </view>
 </view>
handout: function () {
  console.log("out");
},

handmiddle: function () {
  console.log("middle");
},

handinner: function () {
  console.log("inner");
}

点击inner三个事件都执行, 点击middlek执行handmiddle和handout, 点击out只执行handout
阻止事件冒泡行为: 将bindtap改为catchtap就行了。

catchtap只会触发自身的点击事件,会阻断自身的冒泡行为,可以理解为,不管是不是自身触发的点击行为, 传到我这里, 我就将它阻断(不再向上传递)。如:

 <view bindtap=‘handout‘>
    outer
    <view catchtap=‘handmiddle‘>
      middle
      <view bindtap=‘handinner‘>inner</view>
    </view>
  </view>

点击inner, 执行的是handinner和handmiddle两个函数,因为midd的catchtap阻止了事件冒泡行为,所以outer不会执行

原文地址:https://www.cnblogs.com/xi-li/p/11287869.html

时间: 2024-11-05 23:31:15

微信小程序bindtap点击事件与事件冒泡的相关文章

微信小程序开发——点击按钮获取用户授权没反应或反应很慢的解决方法

异常描述: 点击按钮获取用户手机号码,有的时候会出现点击无反应或很久之后才弹出用户授权获取手机号码的弹窗,这种情况下,也会出现点击穿透的问题(详见:微信小程序开发——连续快速点击按钮调用小程序api返回后仍然自动重新调用的异常处理) 异常解析: 1. getPhoneNumber的使用: 对于 getPhoneNumber(OBJECT) API,由于小程序需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 <button> 组件的点击来触发(具体使用方法详见getP

微信小程序里解决app.js onLaunch事件与小程序页面的onLoad加载前后异常问题

使用 Promise 解决小程序页面因为需要app.js onLaunch 参数导致的请求失败 app.js onLaunch 的代码 1 "use strict"; 2 Object.defineProperty(exports, "__esModule", { 3 value: true 4 }); 5 const http = require('./utils/http.js'); 6 const api = require('./config.js'); 7

微信小程序开发——点击按钮退出小程序的实现

微信小程序官方是没有提供退出的API的,但是在navigator这个组件中,是有退出这个功能的:详情参考官方文档:navigator.示例代码:1 navigator open-type="exit" target="miniProgram"关闭小程序/navigator不过这个 ... 微信小程序官方是没有提供退出的API的,但是在navigator这个组件中,是有退出这个功能的: 详情参考官方文档:navigator. 示例代码: 不过这个功能最低支持版本时 2

原创:微信小程序bindtap绑定html元素点击事件

什么是事件? 事件是视图层到逻辑层的通讯方式. 事件可以将用户的行为反馈到逻辑层进行处理. 详解(以常见的tap点击事情为例) 模板.wxml代码: <view id="tapTest" data-hi="WeChat" bindtap="tapName"> Click me! </view> JS文件代码: Page({ data:{ ... }, onload:function(){ ... }, tapName: f

微信小程序的按下抬起事件,下拉选择框的事件及点击确定的方法函数,获取时间的方法,省市区的方法。

抬起按下的事件: 抬起事件: bind:touchstart="nanOne"   把这条属性放到标签里就可以了 在JS中 nanOne: function () { this.setData({ nvimg: '../img/nvOne.png', }) }, 按下事件: bind:touchend="nanTwo" 把这条属性放到标签里就可以了 在JS中 nanTwo: function () { this.setData({ nvimg: '../img/nv

微信小程序bindtap事件

bindtap就是点击事件 在wxml文件下 <button type="primary" bindtap="btnclick"> {{btnText}} </button> 在js文件下 Page({ /** * 页面的初始数据 */ data: { text : "这里是内容" , btnText : "这里是按钮", }, /** * 生命周期函数--监听页面加载 */ onLoad: funct

微信小程序-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='.

微信小程序是什么

官方的开发文档 微信小程序写的不多,随便写写 创建项目,分析工具 微信小程序有专门的编辑工具,去官网下载 然后申请一个小程序项目,获得一个appId,然后进入编辑工具就可以直接开发了 编辑工具可以设置es6编译和npm 文件分析 小程序的写法非常的像vue-cli,但是vue是一个vue文件带有html+js+css 小程序是一个页面分为四个文件,wxml+js+wxss+json(配置页面) 还有一个app.json总配置页面,一个app.js入口文件,一个app.wxss的全局css文件 新

微信小程序学习指南

作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 微信小程序正式公测, 张小龙全面阐述小程序,定档1月9日上线(附90分钟演讲全文) ... 前言:新人第一坑,跳坑指南:修改后,必须保存:ctrl+S: 1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教