私のHTML(動的ではない)は次のようになります:
<select id="domain" class="marketplace">
<option>United States</option>
...
</select>
これは機能します:
$("#domain").on("change", function() {
$("#domain").attr("disabled", "disabled");
/* do ajaxy stuff */
$("#domain").removeAttr("disabled");
});
$("select.marketplace").on("change", function() { /* do some general stuff */});
これはしません:
$("#domain").on("change", function() {
$("#domain").attr("disabled", "disabled");
/* do ajaxy stuff */
$("#domain").removeAttr("disabled");
});
$(document).on("change", "select.marketplace", function() { /* do some general stuff */});
呼び出しを削除する$("#domain").attr("disabled", "disabled");
と、委譲の機能が復元されるため、イベントがどのようにトリガーされたか (つまり、ユーザーの操作によるものでもない)$(document).on()
に関係なく、要素が無効になっているときにイベントがバブルしないように見えます。ただし、どちらのハンドラーもイベントの伝播を防ぐために何も返さないか呼び出しを行わず、jQuery のドキュメントには伝播に影響を与える「無効な」属性について言及されていないため、その理由はわかりません。ここで何が欠けていますか?.trigger
.triggerHandler