2015-10-20 101 views
3

我正在開發一個女巫軟件,所有select元素都使用select2庫。 在頁腳有這個代碼,要做到這一點:如何銷燬屬於特定類的所有select2選擇

$('select').select2(); 

現在我正在開發一個新的畫面,一些選擇將使用選擇2和其他不這樣做,所以我創建的類」 .noSelect2" 爲那些不應該有select2。 當我把這個代碼,它只是破壞了第一個選擇:

$('.noSelect2').select2('destroy') 

我可以做些什麼來消滅所有的元素?

回答

4

使用類以Select2爲目標的問題是,Select2在過去將類複製到容器元素,以便您可以在其中應用CSS。因此,使用該類來定位<select>也導致以<div>或其他容器元素爲目標,並且這會觸發錯誤。

簡單的解決方案是在類選擇器前面添加select,因此它只針對<select>元素。

$('select.noSelect2').select2('destroy') 

在4.0.0 there is a known bug與調用select2('anything'),它選擇多個實例的時候是不相符的。這應該由Select2的下一個版本(4.0.1)修復。

+0

但我只能摧毀第一個選擇權?有一種方法可以銷燬所有具有「.noSelect2」類的select2元素?謝謝你的幫助。 –

+0

這取決於您使用的是哪個版本的Select2。它應該在3.5.x和4.0.1中使用(使用修改後的選擇器)。在4.0.0中,您需要遍歷所有元素並手動調用它。 –

相關問題