2016-04-19 19 views
1

私はselect2バージョン4.0.2(rc1)を使用しています isMultple=trueでselect2を使用してドロップダウンを開き、DOMから選択を動的に削除すると、メニューがつまっています。Select2ドロップダウンメニューがDOMから削除された後も表示されます

the select2 examplesでは、コントロールに焦点を当ててタイムゾーンのオプションが表示され、次にコンソールに$('.s2-example').remove()と入力すると表示されます。オプションのリストはぴったりです。

を編集:上記は私が回避しようとしているものの例です。私の場合に起こっていることは、domが選択ボックスをフレームワークで削除するように操作されていて、それが起こる前にそれに引っ掛けることができないということです。私がしようとしているのは、オプションリストが存在する場合、手動で削除することができるように、削除される要素に応答する方法を見つけることです。

私はこれを処理するためのきれいな方法を見つけようとしています。私はそうのような破壊をフックしようとしました:

$("#select-2-id").on("destroy", function(){...})

が、破壊が解雇されていないようです。

私はmutation observerを使用することを考えましたが、それは私にはハックのような感じです。誰もがこれを処理するより良い方法を提案することができますか?アドバイスをいただければ幸いです。ありがとう!

答えて

1
間違い buried in the documentation (under adapters)

が、あなたはjQueryオブジェクトのメソッド.select2()

$(".js-example-basic-multiple").select2('destroy'); 

これは、インスタンスを破壊する「破壊」渡すことによって、選択のdestroyメソッドを呼び出す必要があります。安全にお電話できます.remove()

$(".js-example-basic-multiple").select2('destroy').remove(); 
+0

お返事ありがとうございます。それは私の考えでは大したことではない。私の場合、コントロールはフレームワークによってDOMから削除されています。私はそれが起こる前に縛ることができません。私は私の質問を編集しました。 – TheMethod

+1

@TheMethodだから起こる前にそれにフックすることはできません。このような破壊的な行動が起こると、私はあなたが[変異観察者](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver)を使用せずにこれを回避できる方法を見出すことができません。または[DOM突然変異イベント](http://help.dottoro.com/ljqkbipq.php)を参照してください。その2番目は非常に推奨されていません。これらのイベントリスナーは廃止されました。 –

関連する問題