2012-12-05 22 views

回答

1

似乎沒有辦法指定是在元素之前還是之後插入select2-container。我看到它的方式有幾種選擇:

  • 修改Select2.js源以在元素之後插入容器。 Line 595變更.before(this.container);變爲.after(this.container);
  • 從您的問題中可以看出哪些代碼「假定以前的兄弟姐妹」並不清楚。如果它是你的代碼,那你應該改變。如果它不是你的代碼,你可以嘗試找到並解決這個問題。我無法在Select2.js源文件中找到任何這樣的假設。
  • 在初始化select2之後,您可以通過將創建的元素移動到DOM中的所需位置來進行跟蹤。您可能想要隱藏這些元素,直到它們被初始化。你也應該測試這個以確保它不會破壞Select2.js插件。

    $('.select2-container').each(function() { 
        $(this).siblings('.elementSelector').first().after($(this)); 
    }); 
    

注意修改Select2.js源將升級在未來更痛苦的是庫(取決於你的舒適性/專業知識水平的)。我建議您在修改插件之前完全確定問題不在您的代碼中。

+0

感謝您的回覆。所有有效的點。對於第二個要點,它是我的代碼(其他人編寫的代碼,但我可以更改)。我想我會堅持選擇而不是Select2。首先嚐試Select2的原因是動態寬度。 – styfle

+0

不客氣。沒有使用任何一個庫,我不完全確定你的意思是動態寬度。我願意打賭有一種方法可以用自定義的js或css來完成它。 –

+0

從本質上講,Select2是一個選擇了更多功能的分支。其中一些功能實際上只是模仿本地選擇元素。當我說動態寬度時,我的意思是你可以用Select2設置100%的寬度,但不能選擇。 – styfle

相關問題