微信小程序的事件
什么是事件
事件的类型
事件冒泡
事件绑定
事件对象详解
什么是事件
一种用户行为
一种通讯方式
事件的类型
点击事件tap
长按事件longtap
触摸事件touchstart touchend touchmove touchcancel
其他事件submit input…
事件冒泡
冒泡事件
非冒泡事件
事件绑定
bind
catch 不会触发冒泡事件
事件对象详解
<!--index.wxml-->
<view class="view1" bindtap="view1Click" id="view1" data-title="新闻标题" data-id="11">
view1
<view class="view2" bindtap="view2Click" id="view2">
view2
<view class="view3" bindtap="view3Click" id="view3">
view3
</view>
</view>
</view>
/**index.wxss**/
.view1{
height:500px;
width:100%;
background-color:aquamarine;
}
.view2{
height:400px;
width:80%;
background-color:rgb(255, 127, 170);
}
.view3{
height:300px;
width:30%;
background-color:rgb(19, 20, 20);
}
//index.js
//获取应用实例
const app = getApp()
Page({
data: {
motto: 'Hello World',
userInfo: {},
hasUserInfo: false,
canIUse: wx.canIUse('button.open-type.getUserInfo')
},
//事件处理函数
view1Click: function(event){
console.log("view1Click")
console.log(event)
},
view2Click: function (event) {
console.log("view2Click")
console.log(event)
},
view3Click: function (event) {
console.log("view3Click")
console.log(event)
},
bindViewTap: function() {
wx.navigateTo({
url: '../logs/logs'
})
},
onLoad: function () {
if (app.globalData.userInfo) {
this.setData({
userInfo: app.globalData.userInfo,
hasUserInfo: true
})
} else if (this.data.canIUse){
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
app.userInfoReadyCallback = res => {
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
} else {
// 在没有 open-type=getUserInfo 版本的兼容处理
wx.getUserInfo({
success: res => {
app.globalData.userInfo = res.userInfo
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
})
}
},
getUserInfo: function(e) {
console.log(e)
app.globalData.userInfo = e.detail.userInfo
this.setData({
userInfo: e.detail.userInfo,
hasUserInfo: true
})
}
})
console: