2012年1月4日 星期三

jQuery blockUI 的 bindEvents 造成的事件被吃掉的問題

資料來源:
------------------
http://eragonj.hax4.in/blog/javascript-solve-conflicts-when-using-jquery-blockui-and-datepicker.html


發生的情況:
------------------
同時用 blockUI 及 datepicker,會發生在你使用 modal dialog ,而該 dialog 內還包含一個 datepicker 的元素,這樣就會造成那個 datepicker 在選取年、月的下拉式選單(dropdown)時無法觸發。



結論:
------------------
blockUI 運行的過程中,有這麼一段程式碼會綁定 mousedown / mouseup / keydown / keypress 的事件,這樣就會使得 datepicker 的點擊行為無法發生,這就是為什麼會有這個 bug 的出現。

所以目前比較好的做法,一個是設定 showOverlay : false (這會拿掉漸層背景,不過這通常都不會是我們想要的解法),另一個就是設定 bindEvents : false (讓 blockUI 不要 suppress 我們的點擊 event ),這樣就可以解決這個問題了。

沒有留言:

張貼留言

Facebook 留言板