0
我使用jQuery插件Select2.js v3.2,它似乎在元素之前插入select2-container
而不是在元素之後。這造成了一些代碼假設先前的兄弟會破壞。是否有一個「追加後」選項來初始化容器,所以我知道它總是會追加到元素後面?Select2.js插件prepends而不是附加容器所選元素
我使用jQuery插件Select2.js v3.2,它似乎在元素之前插入select2-container
而不是在元素之後。這造成了一些代碼假設先前的兄弟會破壞。是否有一個「追加後」選項來初始化容器,所以我知道它總是會追加到元素後面?Select2.js插件prepends而不是附加容器所選元素
似乎沒有辦法指定是在元素之前還是之後插入select2-container
。我看到它的方式有幾種選擇:
.before(this.container);
變爲.after(this.container);
。在初始化select2之後,您可以通過將創建的元素移動到DOM中的所需位置來進行跟蹤。您可能想要隱藏這些元素,直到它們被初始化。你也應該測試這個以確保它不會破壞Select2.js插件。
$('.select2-container').each(function() {
$(this).siblings('.elementSelector').first().after($(this));
});
注意修改Select2.js源將升級在未來更痛苦的是庫(取決於你的舒適性/專業知識水平的)。我建議您在修改插件之前完全確定問題不在您的代碼中。
感謝您的回覆。所有有效的點。對於第二個要點,它是我的代碼(其他人編寫的代碼,但我可以更改)。我想我會堅持選擇而不是Select2。首先嚐試Select2的原因是動態寬度。 – styfle
不客氣。沒有使用任何一個庫,我不完全確定你的意思是動態寬度。我願意打賭有一種方法可以用自定義的js或css來完成它。 –
從本質上講,Select2是一個選擇了更多功能的分支。其中一些功能實際上只是模仿本地選擇元素。當我說動態寬度時,我的意思是你可以用Select2設置100%的寬度,但不能選擇。 – styfle