0

jQuery プラグインSelect2.js v3.2select2-containerを使用していますが、要素の後ではなく要素の前に挿入するようです。これにより、以前の兄弟が壊れていると想定する一部のコードが発生しています。コンテナを初期化するための「後に追加」オプションがあるので、要素の後に常に追加されることがわかりますか?

4

1 に答える 1

1

select2-container要素の前を挿入するか後を挿入するかを指定する方法はないようです。私の見方では、いくつかの選択肢があります。

  • Select2.jsソースを変更して、要素の後にコンテナを挿入します。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ソースを変更すると、将来そのライブラリをアップグレードするのがさらに難しくなることに注意してください(快適さ/専門知識のレベルによって異なります)。プラグインを変更する前に、コードに問題がないことを完全に確認することをお勧めします。

于 2012-12-05T03:54:59.230 に答える