2016-05-12 53 views
0

我正在使用Select2(版本4.0.2)來允許用戶選擇多個值併爲其創建標籤。問題是,當選擇新標籤後展開標籤的範圍時,下拉列表區域不會相應地重新定位。Select2下拉列表未重新定位以顯示添加的標籤

此圖顯示了包含幾個先前選定的數值,選擇其他值之前選擇二區:

Figure 1 http://oi68.tinypic.com/ev5m5k.jpg

此圖顯示了後,我選擇一個或更多的選擇,這是隱藏,因爲標籤會發生什麼面積是身高超過它,但下拉列表選項卡在同一位置:

Figure 2 http://oi67.tinypic.com/63sozk.jpg

如果我把重點回回M(模糊)的標記域,下拉重新顯示在正確的位置,以顯示所有當前選擇的值/標籤:

Figure 3 http://oi68.tinypic.com/sczy81.jpg

問題

我如何獲取下拉選項區域以便在選擇新標籤值時動態地重新定位?我可以攔截一個Select2事件並以某種方式迫使它重新計算垂直位置?或者,也許blur()然後focus()每次選擇選擇的範圍?

回答

2

我想出瞭解決的辦法是強制下拉元素,只要選擇一個下拉選擇或取消選擇,這需要捕捉"change"事件被調整:

// Apply Select2 to the <select> element 
var select2Elem = $("#" + controlID).select2(opts); 

// Force drop-down list to resize upon select/unselect 
select2Elem.on("change", 
    function(evt) { 
     select2Elem.resize(); 
    } 
);