博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信小程序toast组件中bindchange事件触发条件
阅读量:6161 次
发布时间:2019-06-21

本文共 1347 字,大约阅读时间需要 4 分钟。

微信小程序toast组件是一种消息提示框。例如当文章条数全部加载出来后,用户再次点击加载更多的时候,js判断文章条数全部加载出来后,便让toast组件弹出提示用户“没有更多文章了”,效果如下图所示:

代码实现

index.wxml

1//点击加载更多,执行js里的loadMore函数2
加载更多
34//hidden接收js传递过来的toastHidden变量值,为true,toast隐藏;为false,toast显示5
复制代码

文件路径:pages/index/index.wxml

index.js

1Page({ 2  data: { 3    //定义toastHidden变量,并将初始值设为true,此时toast组件隐藏 4    toastHidden: true, 5  }, 6 7  //点击加载更多时执行的函数 8  loadMore: function () { 9   var that = this10   if (“数据条数全部加载出来后”) {11      //if条件成立的话,将toastHidden的值设为false,此时toast组件显示12      that.setData({ toastHidden: false })13    }14  },1516  //这个函数将toastHidden值再次设为true,此时toast组件再次隐藏17  toastChange: function () {18    this.setData({ toastHidden: true })19  }20})复制代码

文件路径:pages/index/index.js

toastchange函数在哪里被执行了?

在上面的动态效果图中,可以看到,当文章条数全部加载出来后,toast组件弹出提示,且几秒后又消失。js中toastchange函数就是让toast组件再次消失。但是代码中并没看到toastchange函数在哪被调用。这就得先了解下toast组件的文档说明。

从文档中得知bindchange事件触发条件需要hidden的值为false。toastchange函数绑定在bindchange事件上,因此toastchange函数在hidden的值为false的时候执行。这里回看js中hidden的值设为false的地方。

红色框里的代码就是关键所在!

代码分析

Step1:toast组件接收js传递过来的toastHidden初始值(true),此时toast隐藏。

Step2:js程序判断文章条数全部加载出来后,将toastHidden值设为false,此时toast显示。

Step3:hidden接到false的时候触发bindchange事件并执行coastchange函数(coastchange执行前会有一个延时(duration),默认1500毫秒),函数中将toastHidden的值设置为true,此时toast组件再次隐藏。

转载于:https://juejin.im/post/5c9643c05188252d9d66bd0c

你可能感兴趣的文章
Spring常用注解
查看>>
linux:yum和apt-get的区别
查看>>
Sentinel 1.5.0 正式发布,引入 Reactive 支持
查看>>
数据库之MySQL
查看>>
2019/1/15 批量删除数据库相关数据
查看>>
数据类型的一些方法
查看>>
Webpack 2 中一些常见的优化措施
查看>>
移动端响应式
查看>>
js中var、let、const的区别
查看>>
简洁优雅地实现夜间模式
查看>>
react学习总结
查看>>
在soapui上踩过的坑
查看>>
MySQL的字符集和字符编码笔记
查看>>
ntpd同步时间
查看>>
Maven编译时跳过Test
查看>>
Spring Boot 整合Spring Security 和Swagger2 遇到的问题小结
查看>>
Apache通过mod_php5支持PHP
查看>>
java学习:jdbc连接示例
查看>>
Silverlight 如何手动打包xap
查看>>
禁用ViewState
查看>>