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