最近移动端的项目都用zepto(也适用于jquery),用click事件的时候发现在ios下没有效果,在网上找资料时候发现原来这是ios下的一个瑕疵,在文字上触发click事件无效,只需要把click事件替换成touchend事件即可,所以在移动端项目还是都尽量使用touch事件来,click事件估计坑还是比较多。
$('body').on('touchend','.comment li .ico_24',function(event) { //触发内容 })
2016-4-26更新
今天突然发现把click事件改成touchend的之后,原来有个fcous焦点的方法失效了,准确的说不是失效,而是方法生效后会被另一个莫名的方法覆盖掉
我touchend方法触发一个输入框fcous,移动端就打开了键盘,但是打开后瞬间就失去了焦点,键盘消失。
网上查了下只有说touchend在安卓端无效的问题,但是我这个不是无效,似乎是在生效后莫名的多了另一个方法,于是想到了touchstart方法,我把touchstart方法加了一个
$('body').on('touchstart', '.comment li .ico_30', function(event) { event.preventDefault(); })
问题就解决了,最终总结,我怀疑touchstart会有一个默认方法,而默认方法还没结束,touchend的方法就已经运行了,这样就导致了刚刚的问题,当然我只是猜测,如果有知道确定答案的大神还望指教。