2016-11-10 13 views
1

Select2版本4.0.3:當使用closeOnSelect設置爲false的多選列表選項時,我嘗試從中選擇多個選項大名單。每次我選擇一個選項時,選擇項目列表將滾動回第一個選項。然後,我必須向下滾動列表才能在我剛剛選擇的選項之後找到選項。select2 with closeOnSelect false失去選擇的滾動位置

有沒有辦法配置Select2在選擇特定選項後保留滾動位置?

任何幫助將不勝感激。

回答

1

這是select 2插件的內部問題。

這是在添加以下函數後發生的迴歸, highlightFirstItem();在選項選擇事件

按照鏈接, https://github.com/select2/select2/issues/4584

的修復程序,這是執行該功能之前添加以下條件,

if(!(self.options.get('multiple') && !self.options.get('closeOnSelect'))) { 
    self.highlightFirstItem(); 
} 

所以在選擇的事件(上線#1036 select.js文件)而成, 前 -

container.on('select', function() { 
     if (!container.isOpen()) { 
     return; 
     } 

     self.setClasses(); 
     self.highlightFirstItem(); 
}); 

後 -

container.on('select', function() { 
     if (!container.isOpen()) { 
     return; 
     } 

     self.setClasses(); 

     if(!(self.options.get('multiple') && !self.options.get('closeOnSelect'))){ 
     self.highlightFirstItem(); 
     } 
}); 

所以突出的第一要素即,重置滾動到頂部我們驗證當前選擇2下拉是否具有多且啓用closeOnSelect選項未設置爲false,如果任何一個爲真,則強調首先前選項未被調用,因此滾動保留在選項上

您必須在select2.js庫中進行此編輯,因爲此修補程序還沒有正式的select2版本。我用select 2版本4.0.3進行編輯。

下面是步驟, 下載選擇2 4.0.3拉鍊,從 https://github.com/select2/select2/tags

源文件(select2.js)的縮小,在本地安裝的NodeJS。

提取該文件夾,請轉到dist/js/ 打開select2.js並替換上面提到的代碼中的container.on('select')函數代碼。

對於文件縮小(uglification),select2使用grunt, 因此在命令行上打開提取的select2-4.0.3文件夾。

運行下面的命令, NPM安裝 NPM安裝-g咕嚕-CLI 咕嚕醜化

以上製備的代碼的變化將被轉移到在select2-4.0.3/DIST select2.min.js文件/ js文件夾,你可以使用它作爲select2 js文件現在在你的項目中

希望這會有所幫助