Select2 在jquery UI Dialog 搜索項失效且不能focus到搜索框解決方案

今天在項目到遇到一個select2插件在jquery UI Dialog 不能focus到搜索框的問題,後來在js 代碼中加入(位置可以自己選 ,我選的位置是select2.min.js 後面,因爲很多地方都用到,不用針對一個一個功能去修改):

$.ui.dialog.prototype._allowInteraction = function(e) {
    return !!$(e.target).closest('.ui-dialog, .ui-datepicker, .select2-drop').length;
};

出現這個問題的原因是:

the reason the dropdown is appended into the body and is the last element is so that it may overlay the dialog when the choice box is taller then the dialog instead of scrolling inside it.

initially select2 did append the dropdown to the container instead of body, but the afore mentioned problem with dialogs is what prompted me to refactor it to append to body in the first place. so far this proved to be a solution with the least amount of problems.

unfortunately its not a perfect solution, not when the dialogs are built with these weird restrictions in place.

這個原因來自:https://github.com/ivaynberg/select2/issues/1246

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章