微信小程序使用或前缀绑定事件,语法如下:- <组件 bind事件名="处理函数" catch事件名="处理函数"></组件>
复制代码
- :事件绑定,允许事件冒泡(向父组件传递)。
- :事件绑定,阻止事件冒泡(不会向父组件传递)。
一、常见事件类型
事件名说明适用组件点击事件,输入框内容变化,表单提交滚动事件长按事件(350ms),
二、事件绑定示例
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)
事件处理函数的参数包含以下关键属性:
属性说明事件类型(如,)触发事件的组件(原始事件源)当前绑定事件的组件额外信息(如输入框的值)事件触发时间戳触摸点信息(多指触控)
获取 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)
- :允许事件向上冒泡(父组件也会触发相同事件)。
- :阻止事件冒泡(仅当前组件触发)。
示例- <view bindtap="parentTap">
- <view catchtap="childTap">点击我(不会触发父组件的 tap)</view>
- </view>
复制代码- Page({
- parentTap() {
- console.log("父组件点击"); // 不会执行(因为子组件用了 catchtap)
- },
- childTap() {
- console.log("子组件点击");
- }
- });
复制代码 五、自定义组件事件(triggerEvent)
如果使用自定义组件,可以通过触发父组件的事件:
子组件- Component({
- methods: {
- handleTap() {
- this.triggerEvent("customevent", { data: "Hello" });
- }
- }
- });
复制代码 父组件- <child bindcustomevent="handleCustomEvent" />
复制代码- Page({
- handleCustomEvent(e) {
- console.log("自定义事件数据:", e.detail.data); // "Hello"
- }
- });
复制代码 六、总结
场景推荐写法普通点击事件阻止冒泡表单输入表单提交- bindsubmit="handleSubmit"
复制代码 自定义组件通信到此这篇关于微信小程序事件绑定基本语法的文章就介绍到这了,更多相关微信小程序事件绑定基本语法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
来源:https://www.jb51.net/javascript/339410jzd.htm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|