最近做了一个H5的小游戏,遇到过页面点击事件在IOS上绑定失效的问题,查询的相关问题后,总结了几种出现问题情况:
1、点击事件在IOS上没有绑定成功
原因是在ios系统中,例如document,div,body这些本身并没有可以被点击的属性的元素不能作为托管点击事件的父元素。所以,用这样的方法进行事件托管,ios会获取不到你的document的点击事件,自然无法获取到你想要绑定的元素身上。
解决方法:在绑定点击事件的元素上绑定
cursor:pointer;
2、在移动端运行时页面报错
在我解决掉第一种情况出现的问题后,H5游戏测试服中出现了游戏页面遮罩点击去不掉的情况:
只有在IOS 9及以下的版本才会出现这种情况,且在测试机上调试没有出现过这种情况,所以考虑了JS可能报错的情况,之后查询相关资料,发现在IOS 9及以下版本并不支持ES6的写法,而且会报错,才影响程序的运行。
我只是将ES6的语法改成了ES5,但是更有效的做法是引用 babel 即可解决ES6语法不支持的情况。