开发页面A的头部是input的框(搜索框),页面B的头部是文本描述,左边有返回按钮,在页面A中点击某元素可以跳转到页面B,然后点击页面B的返回按钮可以返回到页面A。想象来了,点击页面B的返回按钮,在返回到页面A之后,居然头部的搜素框设置焦点并弹出的输入法键盘,然而我并没有点击呢,why?有点懵圈。
有问题就得分析解决问题:
1、考虑过事件阻止以及冒泡
2、考虑过div层的事件点击问题
然并卵!继续百度吧,发现“点击穿透”的概念,发现一个好博文,让人豁然开朗!链接如下:
http://blog.csdn.net/alex8046/article/details/52299785
按照博文中的解决方法,采用延时的方式,元素绑定on-tap事件,采用$timeout解决问题(PC上未测试)。
后又发现比较好的解决方法:
在点击元素上设置属性:data-tap-disabled="true",事件继续绑定ng-click,不使用$timeout,完美解决。
以上,请大家纠正与讨论,谢谢!
原文链接:https://www.f2er.com/angularjs/148120.html