Mein HTML (nicht dynamisch):jQuery 1.7 .on() Ereignis Delegation nicht mit Wahl sieht funktioniert wie folgt auf behinderte Element
<select id="domain" class="marketplace">
<option>United States</option>
...
</select>
Dies funktioniert:
$("#domain").on("change", function() {
$("#domain").attr("disabled", "disabled");
/* do ajaxy stuff */
$("#domain").removeAttr("disabled");
});
$("select.marketplace").on("change", function() { /* do some general stuff */});
Dies gilt nicht :
$("#domain").on("change", function() {
$("#domain").attr("disabled", "disabled");
/* do ajaxy stuff */
$("#domain").removeAttr("disabled");
});
$(document).on("change", "select.marketplace", function() { /* do some general stuff */});
die $("#domain").attr("disabled", "disabled");
Anruf Entfernen stellt die Funktionalität des $(document).on()
d Eleganz, so scheint es Ereignisse nicht Blase, wenn ein Element deaktiviert ist, unabhängig davon, wie das Ereignis ausgelöst wird (d. h. weder von .trigger
noch .triggerHandler
noch durch Benutzerinteraktion). Ich verstehe jedoch nicht warum, da keiner der beiden Handler etwas zurückgibt oder Aufrufe vornimmt, um die Ereignisausbreitung zu verhindern, und in der jQuery-Dokumentation wird nicht erwähnt, dass das Attribut "disabled" Auswirkungen auf die Propagierung hat. Was fehlt mir hier?
Sie erhalten wahrscheinlich eine Ausnahme im ersten Handler. Bitte zeigen Sie uns den vollständigen Code. – SLaks
... hast du nicht * nur * gefragt? – Ryan
Es würde '$ (" # domain ") angezeigt. Attr (" deaktiviert "," deaktiviert ");' im "spezifischen" Handler ist die Quelle des Problems. Werden Ereignisse nicht für "deaktivierte" Elemente gesprudelt? – kobachi