小程序——bindtap 与 bindinput 节流

    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)        // 此处打印出来的就是 用户输入的值
    }


猜你喜欢

转载自blog.csdn.net/BetterGG/article/details/80853312