• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 点击事件
2
3组件被点击时触发的事件。
4
5>  **说明:**
6>
7>  从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8
9
10## 事件
11
12| 名称                                       | 支持冒泡 | 功能描述                              |
13| ---------------------------------------- | ---- | --------------------------------- |
14| onClick(event:&nbsp;(event?:&nbsp;ClickEvent)&nbsp;=&gt;&nbsp;void) | 否    | 点击动作触发该回调,event返回值见ClickEvent对象说明。<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
15
16## ClickEvent对象说明
17
18从API version 9开始,该接口支持在ArkTS卡片中使用。
19
20| 名称            | 类型                                 | 描述                                                     |
21| ------------------- | ------------------------------------ | -------------------------------------------------------- |
22| screenX             | number                               | 点击位置相对于应用窗口左上角的X坐标。                      |
23| screenY             | number                               | 点击位置相对于应用窗口左上角的Y坐标。                      |
24| x                   | number                               | 点击位置相对于被点击元素左上角的X坐标。                    |
25| y                   | number                               | 点击位置相对于被点击元素左上角的Y坐标。                    |
26| timestamp<sup>8+</sup> | number | 事件时间戳。触发事件时距离系统启动的时间间隔,单位纳秒。 |
27| target<sup>8+</sup> | [EventTarget](#eventtarget8对象说明) | 触发事件的元素对象显示区域。 |
28| source<sup>8+</sup> | [SourceType](ts-gesture-settings.md#sourcetype枚举说明) | 事件输入设备。 |
29
30## EventTarget<sup>8+</sup>对象说明
31
32从API version 9开始,该接口支持在ArkTS卡片中使用。
33
34| 名称   | 参数类型                      | 描述         |
35| ---- | ------------------------- | ---------- |
36| area | [Area](ts-types.md#area8) | 目标元素的区域信息。 |
37
38
39
40## 示例
41
42```ts
43// xxx.ets
44@Entry
45@Component
46struct ClickExample {
47  @State text: string = ''
48
49  build() {
50    Column() {
51      Row({ space: 20 }) {
52        Button('Click').width(100).height(40)
53          .onClick((event: ClickEvent) => {
54            this.text = 'Click Point:' + '\n  screenX:' + event.screenX + '\n  screenY:' + event.screenY
55            + '\n  x:' + event.x + '\n  y:' + event.y + '\ntarget:' + '\n  component globalPos:('
56            + event.target.area.globalPosition.x + ',' + event.target.area.globalPosition.y + ')\n  width:'
57            + event.target.area.width + '\n  height:' + event.target.area.height + '\ntimestamp' + event.timestamp;
58          })
59        Button('Click').width(200).height(50)
60          .onClick((event: ClickEvent) => {
61            this.text = 'Click Point:' + '\n  screenX:' + event.screenX + '\n  screenY:' + event.screenY
62            + '\n  x:' + event.x + '\n  y:' + event.y + '\ntarget:' + '\n  component globalPos:('
63            + event.target.area.globalPosition.x + ',' + event.target.area.globalPosition.y + ')\n  width:'
64            + event.target.area.width + '\n  height:' + event.target.area.height + '\ntimestamp' + event.timestamp;
65          })
66      }.margin(20)
67
68      Text(this.text).margin(15)
69    }.width('100%')
70  }
71}
72```
73
74
75![zh-cn_image_0000001210353788](figures/zh-cn_image_0000001210353788.gif)
76