IE @ Windows 8/8.1 的 Scrollbar 在 jQuery is() has() 失效問題
相信有些前端工程師(包括我)喜歡自己刻一些 select 或 input、check box、radio、button 等 js、css,最近公司的新系統上線,被客戶反應說 select 的下拉 scrollbar 在 Windows 8/8.1 的 IE,滑鼠點選 scrollbar 要往下拉,選單卻會縮回去的問題,這是我在 code 裡面用 is(e.target) && has(e.target).length === 0
所發生的事情,不斷的 google 才發現到一篇 stackoverflow 的解答卻是微軟的 IE Bug (微軟你好樣的…!),害我非常苦惱該怎麼解決它,後來找到同樣在 stackoverflow 裡神人的解答,非常的簡單,使用我們熟悉的 jquery.hover
即可,有夠簡單的,立馬解決了這個問題,相關文章如下:
文章1:IE 11 on Windows 8/8.1 JQuery is() and has() don’t include scrollbar of scrollable div
文章2:Use jQuery to hide a DIV when the user clicks outside of it
文章2的部份,作者選擇的正解是 is()
has()
的方法,在往下捲有人回覆用 hover 的方法,參考一下囉。
程式碼範例如下:
1 | var mouse_is_inside = false; |