记一次bug解决!改变思路解决问题的同时,还需要弄明白是什么原因。
bug情况:
需求:某弹层需求点击close按钮和点击遮罩层都触发关闭事件。
认知度:刚接手的杂乱程序。
bug:在电脑上功能完整,在安卓APP中嵌入的h5页面点击遮罩层失败。
调研结果:
1、点击遮罩层在pc中实际是点击的内容容器,通过判断来关闭弹层和遮罩。
2、在页面上通过append输出若干日志。
3、通过日志分析,安卓APP中点击遮罩层没有触发点击事件。
4、通过$(document).on(function(event){$(event.target).attr('class')}),识别页面中所有点击元素的class,仍然无点击事件触发。仅仅是遮罩层部分未触发点击事件。
5、怀疑遮罩层元素有绑定事件和阻止冒泡,则通过setTimeout延迟1秒后off遮罩层的click事件后重新绑定click事件。仍然无日志无点击事件触发。
尴尬:
根本找不到在安卓APP中点击遮罩层,点击到的是哪个元素。
浪费时间:
用了2-3个小时未找到具体问题。
寻找同事协助:
同事听完讲解后,同样的结果。。。。。。思虑后决定自己做一个层来承接安卓APP中的点击事件。。。。。。
结论:
1、未找到实质问题,有时间还得研究。
2、通过自己做新覆盖层,暂时解决了点击失效问题。
3、写程序,当一个问题卡死后,可以先用别的方法绕过,后续再寻找解决方案。