目录
🍍4. target 和 currentTarget 的区别
|
类型
|
绑定方式
|
事件描述
|
|
tap
|
bindtap 或 bind:tap
|
手指触摸后马上离开,类似于 HTML 中的 click 事件
|
|
input
|
bindinput 或 bind:input
|
文本框的输入事件
|
|
change
|
bindchange 或 bind:change
|
状态改变时触发
|
|
属性
|
类型
|
说明
|
|
type
|
String
|
事件类型
|
|
timeStamp
|
Integer
|
页面打开到触发事件所经过的毫秒数
|
|
target
|
Object
|
触发事件的组件的一些属性值集合
|
|
currentTarget
|
Object
|
当前组件的一些属性值集合
|
|
detail
|
Object
|
额外的信息
|
|
touches
|
Array
|
触摸事件,当前停留在屏幕中的触摸点信息的数组
|
|
changedTouches
|
Array
|
触摸事件,当前变化的触摸点信息的数组
|
target 是触发该事件的源头组件,而 currentTarget 则是当前事件所绑定的组件。举例如下:

- <view class="out-view" bindtap="outerHandler">
- view 组件
-
- <button type="primary">按钮</button>
- </view>
- .out-view {
- height: 100px;
- background-color: rgb(15, 218, 201);
- }
-
<button type="primary" bindtap="bindtap">按钮</button>
- Page({
- bindtap(e){
- console.log(e)
- }
- })
未点击按钮时:

点击按钮后:

通过调用 this.setData(dataObject) 方法,可以给页面 data 中的数据重新赋值,示例如下:
JS:
-
- Page({
- data:{
- count:0
- },
-
- changeCount(){
-
- this.setData({
- count:this.data.count+1
- })
-
- }
-
-
-
- })
WXML:
<button type="primary" bindtap="changeCount">点击值+1</button>
效果:点击按钮,数据+1

<button bindtap="btn" data-indo="{{3}}">事件传参</button>
-
- Page({
- data:{
- count:0
- },
-
- btn(event){
- console.log(event.target.dataset)
- console.log(event.target.dataset.info)
- this.setData({
- count:this.data.count+this.data.count+event.target.dataset.info
- })
-
-
- }
-
-
-
- })
WXML:
<button bindtap="btn" data-info="{{3}}">事件传参</button>
未点击按钮:

<input bindinput="input"/>
- Page({
- input(e){
- console.log(e.detail.value)
- }
- })

- Page({
-
- data: {
- msg:'加油'
- },
-
- input(e){
- console.log(e.detail.value)
- }
- })
<input value="{{msg}}" bindinput="input"/>
美化样式
- input {
-
- width: 100%;
- height: 54px;
- border-radius: 10px;
- background: #e0e0e0;
- box-shadow: 20px 20px 60px #bebebe,
- -20px -20px 60px #ffffff;
- }
