Heim > Web-Frontend > js-Tutorial > Hauptteil

Was ist die optimale Methode zum Deaktivieren und Aktivieren von Elementen mit jQuery: prop() vs. attr() für boolesche Attribute?

Susan Sarandon
Freigeben: 2024-10-19 19:12:30
Original
708 Leute haben es durchsucht

What's the Optimal Method for Disabling and Enabling Elements with jQuery: prop() vs. attr() for Boolean Attributes?

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>
Nach dem Login kopieren

jQuery:

<code class="javascript">$("#edit").click(function(event){
   event.preventDefault();
   $('.inputDisabled').removeAttr("disabled")
});</code>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Warum prop() über attr() für boolesche Attribute?

  • Konsistenz: prop() legt den Eigenschaftswert konsistent fest, während attr() zu unerwartetem Verhalten führen kann einige Situationen.
  • Genauigkeit: prop() ruft den tatsächlichen Eigenschaftswert ab und legt ihn fest, während attr() basierend auf dem Attribut möglicherweise einen anderen Wert zurückgibt oder festlegt.
  • Effizienz: prop() ist für boolesche Attribute effizienter, da es die Eigenschaft direkt ändert, ohne das Attribut einzubeziehen.

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!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!