事情緣由
由於工作需要,我自己寫了一個modal彈出框,彈出框顯示的時候,點擊屏幕則該框消失。
然后我利用jQuery的on方法把click事件綁定到了document上面。做完之后,效果不錯,結果就上線了。
結果同事拿着他的iphone6告訴我,彈出框無法消失。
然后我就找啊找,debug發現該事件沒有執行,然后我就換了個寫法,直接使用click方法能用。
查找原因
我們都知道在移動端,手機默認是觸摸事件,也就是touch事件。在iphone上面事件冒泡的是touch一類的事件,而不是click事件。
只有鏈接和input輸入框這兩類元素才有click事件。
解決方法
一、使用touchstart或者touchend代替click事件。
二、使用FastClick插件。因為該插件的原理就是利用touch來模擬click事件。
相關閱讀
http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html
