事件映射表


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
注意:
  1. 在input和textarea中,change事件被转为blur事件。
  2. 这个表单是不完整的,表中没有的一些原生事件在这里也可以使用,如:map组件的regionchange事件,直接在组件上使用@regionchange
  3. 平台差异所致,同时绑定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,因此在事件绑定需要传参的时候,多注意一下这个小坑。
结束...