教程 框架 组件 接口

通用事件

通用事件,即所有组件都支持的事件回调

开发者可以在组件标签上使用on{eventName}(如onclick)或@{eventName}(如@click)注册回调事件

更详细的讲解,可查阅事件绑定文档了解

示例代码

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

通用事件列表:

名称参数描述冒泡
clickMouseEvent 1050+组件被点击时触发1040+
focus-组件获得焦点时触发不支持
blur-组件失去焦点时触发不支持
appear-组件出现时触发不支持
disappear-组件消失时触发不支持
resize 1050+{offsetWidth: offsetWidthValue, offsetHeight: offsetHeightValue, offsetLeft: offsetLeftValue, offsetTop: offsetTopValue}组件大小改变后触发不支持
onkey tvKeyEvent组件中遥控器点击触发;
返回值false:默认值,如果页面内实现了onKey生命周期,则onKey生命周期会收到回调;如果页面没有实现onKey生命周期,将不拦截key值操作,直接执行对应key值
返回值true:表示自己处理key值,不往上传,页面的onKey生命周期也不会收到回调
不支持

关于冒泡

1040+ 版本对某些通用事件开放了冒泡功能,这些事件的响应行为与之前版本差异较大。因此为了兼容之前版本,开发者需要在 manifest.json 中将 minPlatformVersion 设置为 1040 或以上,才会启用这类通用事件的冒泡功能。

关于事件冒泡及阻止事件冒泡详细案例,请参考:事件监听

事件对象

1、MouseEvent 类型说明:

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

示例:

如下,在 div 上绑定了 click事件,触发事件时将事件打印出来。

<template>
  <div class="root-page">
    <div class="touch-region" onclick="click"></div>
  </div>
</template>

<style>
  .root-page {
    flex-direction: column;
    align-items: center;
  }

  .touch-region {
    width: 80%;
    height: 20%;
    background-color: #444444;
  }

</style>

<script>
  export default {
    private: {},
    click(event) {
      console.log("click event fired:" + JSON.stringify(event))
    },
  }

</script>

2、KeyEvent 类型说明:

属性类型说明
codenumber按下的键位, keyCode表可查看下面的“键位支持”表
actionnumber按下或释放的动作,有0和1。0:按下;1:弹起。一般情况下,一次按键操作会分别触发一次“按下和”弹起“的keyAction
repeatCountnumber连续按的次数,repeatCount : 按键事件重复的次数。按键在长按的时候,会连续产生多个DOWN事件,这个时候除第一个DOWN事件的repeatCount为0,之后的DOWN事件的repeatCount会递增。

键位支持表:

数值描述约定行为设备
19DPAD_UP遥控
20DPAD_DOWN遥控
21DPAD_LEFT遥控
22DPAD_RIGHT遥控
23DPAD_CENTER确定遥控

示例:

<template>

<div onkey="onKeyFunction"></div>

</template>

onKeyFunction(event){

 console.log('key pressed!'+event)

 console.info(`触发组件 onkey 回调`)

 // false:默认值,如果页面内实现了onKey生命周期,则onKey生命周期会收到回调;如果页面没有实现onKey生命周期,则sdk将不拦截key值操作,直接执行对应key值

 // true:表示自己处理key值,不往上传,页面的onKey生命周期也不会收到回调

 // return true

}

条匹配 "" 的结果

    没有搜索到与 "" 相关的内容