事件映射表
| web事件 | uniapp事件 |
点击 | click | tap |
触屏开始 | touchstart | touchstart |
触屏移动 | touchmove | touchmove |
触屏取消 | touchcancel | touchcancel |
触屏结束 | touchend | touchend |
单击(跟click一样) | tap | tap |
长按 | longtap | longtap |
输入 | input | input |
改变 | change | change |
提交 | submit | submit |
失去焦点 | blur | blur |
获得焦点 | focus | focus |
重置 | reset | reset |
确认 | confirm | confirm |
字段改变 | columnchange | columnchange |
行改变 | linechange | linechange |
错误 | error | error |
滚动到顶部 | scrolltoupper | scrolltoupper |
滚动到底部 | scrolltolower | scrolltolower |
滚动 | scroll | scroll |
注意:
- 在input和textarea中,change事件被转为blur事件。
- 这个表单是不完整的,表中没有的一些原生事件在这里也可以使用,如:map组件的regionchange事件,直接在组件上使用@regionchange
- 平台差异所致,同时绑定bind和catch事件时,只触发bind,catch不管用
事件绑定和传参
<template> <view> <view @click="clickDemo" @longtap="longTapDemo" id="out123456" class="out"> <view id="in123456" class="in"></view> </view> </view> </template> <script> export default { methods: { clickDemo: function(e){ console.log(e); // 注意看这里 console.log(e.target.id); console.log(e.currentTarget.id); }, longTapDemo: function(e){ console.log(e); } } } </script> <style> .out{ background: #007AFF; height: 400px; width: 400px; } .in{ background: #F0AD4E; height: 200px; width: 200px; } </style>
在没有做冒泡穿透处理时,两张图体会一下 😀target 和 🤣currentTarget 的区别
你会发现 target 拿到的是点击元素的id,而 currentTarget 拿到的是事件绑定元素的id,因此在事件绑定需要传参的时候,多注意一下这个小坑。
结束...