### 事件绑定和冒泡
事件绑定的写法同组件的属性,以 key、value 的形式。
* key 以bind或catch开头,然后跟上事件的类型,如bindtap、catchtouchstart。自基础库版本 1.5.0 起,bind和catch后可以紧跟一个冒号,其含义不变,如bind:tap、、catch:touchstart。
* value 是一个字符串,需要在对应的 Page 中定义同名的函数。不然当触发事件的时候会报错。
* bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡。
如在下边这个例子中,点击 inner view 会先后调用handleTap3和handleTap2(因为tap事件会冒泡到 middle view,而 middle view 阻止了 tap 事件冒泡,不再向父节点传递),点击 middle view 会触发handleTap2,点击 outer view 会触发handleTap1。
~~~
<view id="outer" bindtap="handleTap1">
outer view
<view id="middle" catchtap="handleTap2">
middle view
<view id="inner" bindtap="handleTap3">
inner view
</view>
</view>
</view>
~~~
### 页面跳转
`wx.navigateTo(OBJECT)`
保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面。
|参数 | 类型 |必填 |说明|
|---|---|---|---|
|url | String | 是| 需要跳转的应用内非 tabBar 的页面的路径 , 路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如 'path?key=value&key2=value2'|
|success | Function |否| 接口调用成功的回调函数|
|fail |Function | 否 |接口调用失败的回调函数|
|complete| Function |否 |接口调用结束的回调函数(调用成功、失败都会执行)|
示例代码:
~~~javascript
wx.navigateTo({
url: 'test?id=1'
})
//test.js
Page({
onLoad: function(option){
console.log(option.query)
}
})
~~~
> 注意:目前页面路径最多只能十层。
`wx.redirectTo(OBJECT)`
关闭当前页面,跳转到应用内的某个页面。
|参数 | 类型 |必填 | 说明|
|---|---|---|---|
|url |String| 是 |需要跳转的应用内非 tabBar 的页面的路径,路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如 'path?key=value&key2=value2'|
|success | Function| 否 |接口调用成功的回调函数|
|fail | Function | 否 |接口调用失败的回调函数|
|complete |Function |否 | 接口调用结束的回调函数(调用成功、失败都会执行)|
示例代码:
~~~javascript
wx.redirectTo({
url: 'test?id=1'
})
~~~
`welcome.js`
~~~javascript
onTap:function(){
//跳转并且可以返回原来的页面
// wx.navigateTo({
// url:"../posts/post"
// })
// wx.redirectTo({
// url: '../posts/post',
// })
console.log('onTap');
},
onTextTap:function(){
console.log('onTextTap');
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
console.log('unload');
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
console.log('unhide');
},
~~~