Heim >Web-Frontend >js-Tutorial >Was ist die optimale Methode zum Deaktivieren und Aktivieren von Elementen mit jQuery: prop() vs. attr() für boolesche Attribute?
So deaktivieren und aktivieren Sie Elemente effektiv mit jQuery: Den Unterschied zwischen attr() und prop() verstehen
Problem:
Sie versuchen, Eingaben zunächst zu deaktivieren und sie dann zu aktivieren, wenn auf einen Link geklickt wird, aber Ihre aktuelle jQuery-Lösung funktioniert nicht.
HTML:
<code class="html"><input type="text" disabled="disabled" class="inputDisabled" value=""></code>
jQuery:
<code class="javascript">$("#edit").click(function(event){ event.preventDefault(); $('.inputDisabled').removeAttr("disabled") });</code>
Ursache:
Sie verwenden removeAttr() zum Entfernen das „disabled“-Attribut, aber dieser Ansatz weist Einschränkungen auf, insbesondere bei booleschen Attributen wie „disabled“.
Lösung: Verwendung von prop() anstelle von attr()
Für boolesche Attribute wird empfohlen, die Methode prop() anstelle von attr() zu verwenden. Diese Methode ändert explizit den zugrunde liegenden Eigenschaftswert des Elements, was effizienter und für boolesche Attribute geeignet ist.
JQuery aktualisiert:
<code class="javascript">$("#edit").click(function(event){ event.preventDefault(); $('.inputDisabled').prop("disabled", false); // Element(s) are now enabled. });</code>
Warum prop() über attr() für boolesche Attribute?
Hinweis: In früheren jQuery-Versionen Bis 3.0 würde „removeAttr()“ für ein boolesches Attribut auch die entsprechende Eigenschaft auf „false“ setzen. Dieses Verhalten wurde in späteren Versionen nicht mehr unterstützt, was die Bedeutung der Verwendung von prop() für boolesche Attribute hervorhebt.
Das obige ist der detaillierte Inhalt vonWas ist die optimale Methode zum Deaktivieren und Aktivieren von Elementen mit jQuery: prop() vs. attr() für boolesche Attribute?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!