微信小程序事件绑定基本语法示例详解

 更新时间:2025年04月11日 09:06:10   作者:@程序员ALMJ  
这篇文章主要介绍了微信小程序事件绑定基本语法示例详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧

微信小程序使用 bind 或 catch 前缀绑定事件,语法如下:

<组件 bind事件名="处理函数" catch事件名="处理函数"></组件>
  • bind:事件绑定,允许事件冒泡(向父组件传递)。
  • catch:事件绑定,阻止事件冒泡(不会向父组件传递)。

一、常见事件类型

事件名说明适用组件
tap点击事件viewbutton
input输入框内容变化inputtextarea
submit表单提交form
scroll滚动事件scroll-view
longpress长按事件(350ms)viewbutton

二、事件绑定示例

1. 点击事件(bindtap / catchtap)

<!-- 点击事件(允许冒泡) -->
<view bindtap="handleTap">点击我</view>
<!-- 阻止冒泡 -->
<view catchtap="handleNoBubbleTap">点击我(不冒泡)</view>
Page({
  handleTap() {
    console.log("点击事件触发");
  },
  handleNoBubbleTap() {
    console.log("点击事件触发,但不会冒泡");
  }
});

2. 输入事件(bindinput)

<input bindinput="handleInput" placeholder="输入内容" />
Page({
  handleInput(e) {
    console.log("输入内容:", e.detail.value);
  }
});

3. 表单提交(bindsubmit)

<form bindsubmit="handleSubmit">
  <input name="username" placeholder="用户名" />
  <button form-type="submit">提交</button>
</form>
Page({
  handleSubmit(e) {
    console.log("表单数据:", e.detail.value);
  }
});

三、事件对象(event)

事件处理函数的参数 event 包含以下关键属性:

属性说明
type事件类型(如 tapinput
target触发事件的组件(原始事件源)
currentTarget当前绑定事件的组件
detail额外信息(如输入框的值)
timeStamp事件触发时间戳
touches触摸点信息(多指触控)

获取 data-* 自定义数据

<view data-id="123" bindtap="handleDataTap">点击获取 data-id</view>
Page({
  handleDataTap(e) {
    const id = e.currentTarget.dataset.id; // 123
    console.log("data-id:", id);
  }
});

四、阻止事件冒泡(catch vs bind)

  • bind:允许事件向上冒泡(父组件也会触发相同事件)。
  • catch:阻止事件冒泡(仅当前组件触发)。

示例

<view bindtap="parentTap">
  <view catchtap="childTap">点击我(不会触发父组件的 tap)</view>
</view>
Page({
  parentTap() {
    console.log("父组件点击"); // 不会执行(因为子组件用了 catchtap)
  },
  childTap() {
    console.log("子组件点击");
  }
});

五、自定义组件事件(triggerEvent)

如果使用自定义组件,可以通过 triggerEvent 触发父组件的事件:

子组件

Component({
  methods: {
    handleTap() {
      this.triggerEvent("customevent", { data: "Hello" });
    }
  }
});

父组件

<child bindcustomevent="handleCustomEvent" />
Page({
  handleCustomEvent(e) {
    console.log("自定义事件数据:", e.detail.data); // "Hello"
  }
});

六、总结

场景推荐写法
普通点击事件bindtap="handleTap"
阻止冒泡catchtap="handleTap"
表单输入bindinput="handleInput"
表单提交bindsubmit="handleSubmit"
自定义组件通信triggerEvent + bind事件名

到此这篇关于微信小程序事件绑定基本语法的文章就介绍到这了,更多相关微信小程序事件绑定基本语法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 当前页禁止复制粘贴截屏代码小集

    当前页禁止复制粘贴截屏代码小集

    本文为大家详细介绍下禁止截屏,通过清除剪切板实现、禁止复制、禁止右键菜单、禁止网页另存为等等,感兴趣的朋友可以参考下哈,希望对大家有所帮助
    2013-07-07
  • JavaScript遍历数组的三种方法map、forEach与filter实例详解

    JavaScript遍历数组的三种方法map、forEach与filter实例详解

    这篇文章主要介绍了JavaScript遍历数组的三种方法map、forEach与filter,结合实例形式详细分析了javascript针对数组遍历的map、forEach与filter三种方法相关操作技巧与注意事项,需要的朋友可以参考下
    2019-02-02
  • 一问了解JavaScript中的元数据

    一问了解JavaScript中的元数据

    本文主要介绍了一问了解JavaScript中的元数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 详解TypeScript中的箭头函数如何实现重载

    详解TypeScript中的箭头函数如何实现重载

    这篇文章主要为大家详细介绍了TypeScript中的箭头函数是如何实现重载的,文中的示例代码讲解详细,具有一定的参考价值,需要的可以参考一下
    2023-05-05
  • Javascript中的相等与不等运算

    Javascript中的相等与不等运算

    在 javascript 中,可以使用 == 来比较两个数据是否相等,如果两个数据的类型不同,那么,将在进行转换后进行比较
    2010-04-04
  • JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例

    JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例

    这篇文章主要介绍了JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法,结合实例形式分析了JavaScript观察者模式概念、原理、使用方法及相关操作注意事项,需要的朋友可以参考下
    2018-07-07
  • 利用原生JavaScript实现造日历轮子实例代码

    利用原生JavaScript实现造日历轮子实例代码

    这篇文章主要给大家介绍了关于如何利用原生JavaScript实现造日历轮子的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用JavaScript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • JavaScript将数据转换成整数的方法

    JavaScript将数据转换成整数的方法

    这篇文章主要介绍了JavaScript将数据转换成整数的方法,有需要的朋友可以参考一下
    2014-01-01
  • JavaScript获取数据类型的方法详解

    JavaScript获取数据类型的方法详解

    这篇文章给大家介绍了JavaScript获取数据类型的方法,文中所介绍的所有知识点、代码示例以及提供的解决方案,均不考虑 IE 浏览器,仅支持最新版本的 Chrome、Firefox、Edge 和 Safari 浏览器,需要的朋友可以参考下
    2024-02-02
  • 浅谈JS中逗号运算符的用法

    浅谈JS中逗号运算符的用法

    下面小编就为大家带来一篇浅谈JS中逗号运算符的用法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06

最新评论