跳转到内容

通用事件

通用事件指所有组件均支持的事件回调。

开发者可以在组件标签上通过 on{eventName}(如 onclick)或 @{eventName}(如 @click)的形式注册事件处理函数。 两种写法的效果一致,其中 @event 是语法糖,更适用于框架风格的开发方式。

有关事件绑定的更多说明,请参考 事件绑定 文档。

<template>
<div>
<text onclick="clickFunction1">line 1</text>
<text @click="clickFunction2">line 2</text>
</div>
</template>

注:请确保 clickFunction1clickFunction2 在组件的逻辑代码中有相应定义。

名称参数描述冒泡
touchstartTouchEvent手指刚触摸组件时触发支持
touchmoveTouchEvent手指触摸后移动时触发支持
touchendTouchEvent手指触摸动作结束时触发支持
touchcancelTouchEvent触摸操作被系统中断时触发,如来电、弹窗等支持
clickMouseEvent用户点击组件时触发支持
longpressMouseEvent用户长按组件时触发支持
属性类型说明
typestring事件名称,如 touchstart、touchmove、click 等
touchesTouch[]当前停留在屏幕中的触摸点信息的数组
属性类型说明
clientXnumber距离可见区域左边沿的 X 轴坐标,不包含任何滚动偏移。
clientYnumber距离可见区域上边沿的 Y 轴坐标,不包含任何滚动偏移以及状态栏和 titlebar 的高度。
pageXnumber距离可见区域左边沿的 X 轴坐标,包含任何滚动偏移。
pageYnumber距离可见区域上边沿的 Y 轴坐标,包含任何滚动偏移。(不包含状态栏和 titlebar 的高度)
offsetXnumber距离事件触发对象左边沿 X 轴的距离
offsetYnumber距离事件触发对象上边沿 Y 轴的距离

与 TouchEvent 中属性相同,表示鼠标事件相关的坐标信息。

属性类型说明
clientXnumber距离可见区域左边沿的 X 轴坐标,不包含任何滚动偏移。
clientYnumber距离可见区域上边沿的 Y 轴坐标,不包含任何滚动偏移以及状态栏和 titlebar 的高度。
pageXnumber距离可见区域左边沿的 X 轴坐标,包含任何滚动偏移。
pageYnumber距离可见区域上边沿的 Y 轴坐标,包含任何滚动偏移。(不包含状态栏和 titlebar 的高度)
offsetXnumber距离事件触发对象左边沿 X 轴的距离
offsetYnumber距离事件触发对象上边沿 Y 轴的距离

如下示例在一个 div 元素上绑定了 clicktouchmove 事件,触发时打印事件信息:

<script>
export default {
data: {},
click(event) {
console.log('click event fired')
},
move(event) {
console.log('move event touches:' + JSON.stringify(event.touches))
},
}
</script>
<template>
<div class="w-full h-full flex justify-center items-center bg-white">
<div
class="w-4/5 h-1/5 bg-gray-700"
onclick="click"
ontouchmove="move"></div>
</div>
</template>
<style>
@tailwind utilities;
</style>

打印结果如下,click 事件:

move event touches:[
{
"offsetX": 296,
"identifier": 0,
"offsetY": 113.48148345947266,
"clientY": 113.48148345947266,
"clientX": 360,
"pageY": 113.48148345947266,
"pageX": 360
}
]
click event fired