編集: 問題は解決されました。Select2 ライブラリには、このタイプのカスタム コマンドがありました。
$("#element").on("change", function (e) { ... }
// Defined as "change"
Select2 3.2 というドロップダウン メニュー ライブラリを使用しています。要するに、コードは選択タグとオプション タグの束を取り、クールなドロップダウン検索リストを生成します。
ただし、サイトがレンダリングされた後。「ソースを表示」をクリックすると、すべての選択タグとオプションタグがまだそこにありますが、新しく生成された派手なメニュー自体を右クリックして「要素を検査」を選択すると(Google Chromeを使用)、htmlはまったく異なります.
これが問題を引き起こしていると思います。この新しいコードはすべて、カスタム ライブラリの JS からレンダリングされ、jQuery イベント コマンドの後にレンダリングされます。
具体的には、ここに私のコマンドがあります:
$(document.body).on('click', '.select2-result-label', function() {
var name = $(this).text();
var post_to = '/myurl/';
$.post(post_to, { dat: dat},
function(response) {
...
}, 'json'
)
私は on() メソッドがこの種のものを処理すると信じていますが、どうやらそうではないようです。
関連する編集:これは別のスタックオーバーフロー投稿からの宣伝文句です:
The view page source page shows you the exact text that
was returned by the server.
Inspect element actually shows you the fully rendered DOM tree.
それを知っていると、おそらくこれを解決するのが簡単になります。
これはJS Fiddle関連です:
マルチバーの「x」をクリックすると、アラート「機能しました」が表示されるようにしてください。現在、私のコードでは、x を含むクラスを登録する必要があります。
$(document.body).on("click", ".select2-search-choice-close", alert("worked"));