最近做微信公众号开发的时候遇到一个问题,上线后发现此问题后检查代码没有发现问题,无奈只能回滚到上一个版本。

  问题是这样的:页面一个选择的浮层,在浮层点击确定后,下面的页面会自动提交

  

  在测试环境上无法重现,也不可能用正式环境测试问题,百撕不得骑姐之际,突然想到这个现象十分像JS冒泡,当然不是JS冒泡,那会不会是点了这个确定触发了下面的提交,测试环境没问题是因为测试环境由于数据原因,提交按钮刚好没在确定下面。

  这个容易,造数据验证,果然猜对了。剩下的就好办了,在浮层还在的时候锁掉下面的提交就好了。

  这个浮层是由mobiscroll.scroller控件产生的,去翻文档,发现特别慢,懒得翻墙就看了下控件的源码。

  找到了浮层打开前的事件:onBeforeShow;又找到了选择事件,同时因为需要显示的值和控件原本的不同,就直接改代码了:

  

/**
* Set button handler.
*/
that.select = function () {
if (that.hide(false, 'set') !== false) {
setValue(true, true, 0, true);
var showText = that.getValue();
if(showText.length>12){
var text = showText.slice(0,11);
showText = text + "...";
}
/*event('onSelect', [that.val]);改为显示值*/
event('onSelect', [showText]);
/*加个事件*/
event('onEndSelect', [showText]);
}
}; /**
* Cancel and hide the scroller instance.
*/
that.cancel = function () {
if (that.hide(false, 'cancel') !== false) {
event('onCancel', [that.val]);
event('onEndSelect', [that.val]);
}
};

  掉用处的代码:

        var opt = {
'select-opt': {
preset: 'select',
group: true,
width: 50
,onBeforeShow:function(){
lockSure = true;
}
,onClose:function(){
setTimeout('lockSure = false;',400);
}
,onEndSelect:function(){
setTimeout('lockSure = false;',330);
}
}
};

  上面onClose是同事连VPN后在文档中找到的事件,不过发现直接在事件中设置锁定变量值是不行的,只好延迟一下执行。经过测试,在手机反应比较慢时onClose在400毫秒时或选择结束时延迟330毫秒基本可以保证执行正常,选择结束效果产生会快一点,onClose的效果会比我加的事件处理全面一些,所以两个都保留了。

最新文章

  1. NSOprationQueue 与 GCD 的区别与选用
  2. (转)C#操作PPT
  3. PHP程序员的40点陋习,我几乎全部中枪
  4. 一条scan查询把HBase集群干趴下
  5. HDOJ 2212 DFS
  6. Poj 2092 Grandpa is Famous(基数排序)
  7. JAVA语言中冒号的用法
  8. let and const
  9. “command line option syntax error,Type command/?for help
  10. ●BZOJ 2752 [HAOI2012]高速公路(road)
  11. Pollution over East China : Image of the Day
  12. Python的安装与小程序的编写
  13. luarocks 包管理工具
  14. SSH使用自定义私钥进行登录
  15. [原]openstack-kilo--issue(二十二) 虚拟机的vnc console图像调用错误
  16. qt设计器中使用自定义控件
  17. hdu5608杜教筛
  18. linux入门经验之谈
  19. Python学习-终端字体高亮显示1
  20. SUSE Enterprise Server 12 SP3 64 设置防火墙开放8080端口,出现Unsafe permissions for file /etc/sysconfig/SuSEfirewall2 to be sourced

热门文章

  1. C#基础篇 - 正则表达式入门
  2. 启用 Open vSwitch - 每天5分钟玩转 OpenStack(127)
  3. [Egret]优雅的写http
  4. 访问者模式(visitorpattern)
  5. 使用DeviceOne实现微信小程序功能
  6. 去IOE的一点反对意见以及其他
  7. Linux学习
  8. OpenGL ES 3.0: 图元重启(Primitive restart)
  9. 如何查看w3p.exe 和IIS 应用程序池的关系
  10. MVC5在Mono上的各种坑