Click events not working on Safari

Safari 無法觸發點擊事件

今天準備要下班的時候被同事抓住說safari上出現了一個bug,
說按鈕怎樣點擊都沒有反應,並且只有safari有這個問題。

原本以為是js又出了什麼問題,殊不知用console直接trigger點擊事件完全OK
證明了是safari無法捕捉到使用者點擊的事件。

後來一查發現這根本是個safari的bug,官方還偷偷把這部分的說明拿掉(囧),
根本就是想偷偷把bug隱藏起來啊!!!(重點是這個bug你又沒修掉!!!)

僅此紀錄解決方法,以後大家少走點冤枉路。QQ

原因

其實它就是bug,結束。(欸)

看mdn上面的說法是因為safari自己有定義哪些elements是可點擊哪些是不可點擊的,
所以如果點擊對象是nonclickable,自然就不會觸發click event。
(啊結果你官方文件又沒說你定義哪些是可點擊的!!!簡直要爆氣!!!)

還好MDN上面有列出來,可以看這邊參考。

解法

紀錄一下兩個我覺得比較實用的解法備存。(不然哪天文件消失又要哭哭了QQ)

  • 為點擊對象添加 cursor: pointer 的css style
  • 添加onclick="void(0)"的屬性

我今天是使用加css的方式,然後就好了。(囧)
Apple我明明這麼相信你的技術力啊!!!!!

參考文件

至於Apple自己的官方文件則是都被移掉了⋯⋯徹底無言⋯⋯