1、bindtap 绑定点击事件
// wxml 代码:
<view class="type" bindtap='clickToDetail' id="{{item.id}}" data-title="西湖" data-place="杭州">
</view>
// js 代码:
clickToDetail: function(e){
console.log(e.currentTarget) // 通过console.log查看数据,获取需要的数据
var title = e.currentTarget.dataset.title,
place = e.currentTarget.dataset.place;
wx.navigateTo({ // 此处是页面跳转方法,这种方法仅限非 tabBar 页面,tabBar 页面用 wx.switchTab 方法
url: '../detail/detail?title=' + title +'&place='+ place,
})
}
// 在 detail 的 js 页面,在 onload 预加载周期函数中,可获得该参数:
onLoad: function (options) {
console.log(JSON.stringify(options)); // 查看数据
var title = options.title,
place = options.place;
}
2、bindinput 监听 input 输入框的输入 与 节流
// wxml 代码:
<input class='searchInput' value="{{keyWord}}" type="text" confirm-type="search" bindconfirm="searchIt" bindinput="inputValue"/>
// 这种写法 bindconfirm 绑定的函数在点击软键盘右下角回车键时,触发 searchIt 函数
// confirm-type="search" 写法,使右下角回车键显示为 ‘搜索’
js 代码:
// 实时监听输入框的 关键词,放到 data 中
inputValue: function(e){
var keyWord = e.detail.value; // keyWord 为输入的值
// 假设现在需要检测到用户输入的值,用户 400 毫秒内没有继续输入就将该值打印出来
this.throttle(this.queryData, null, 400, keyWord);
},
// 节流
throttle: function(fn, context, delay, text) {
clearTimeout(fn.timeoutId);
fn.timeoutId = setTimeout(function () {
fn.call(context, text);
}, delay);
},
// 想要执行的函数
queryData: function(e){
console.log(e) // 此处打印出来的就是 用户输入的值
}