erfahrene JQuery -Benutzer kennen die Ereignisbindung, aber die Optimierung verbessert die Code -Robustheit und -wartbarkeit. In diesem Artikel werden Techniken für eine effektivere JQuery -Ereignisbindung untersucht. Schlüsselverbesserungen:
data-hook <https:> Attributen anstelle von CSS-Klassen trennt die Präsentation und Interaktionslogik. Änderungen an CSS -Klassen werden JavaScript nicht brechen. <https:>
<li> <strong> benannte Funktionen als Handler: <https:> Ersetzen anonymer Funktionen durch benannte Funktionen verbessert die Lesbarkeit, ermöglicht die Wiederverwendbarkeit und vereinfacht das Testen. <https:>
<li> <strong> Namespaces für eine präzise Steuerung: <https:> JQuery's Namespace -Funktion bietet eine granulare Steuerung über die Ereignisbindung und -störung, vereinfacht die Reinigung, insbesondere in Plugins. <https:>
<https:>
<p> <strong> Verbesserte Selektorstrategie: <https:> <https:>
<p> Betrachten Sie einen einfachen NAV -Menüumschalter: <https:>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"> <code class="language-html"> <button data-hook="nav-menu-toggle"> NAV -Menü <https:>
<nav data-hook="nav-menu">
<ul>
<li> <a href="//m.sbmmt.com/link/29a9f8c8460e5e2be4edde557fd83712"> West Philadelphia <https:> <https:>
<li><a href="//m.sbmmt.com/link/29a9f8c8460e5e2be4edde557fd83712cab"> cab pfeifend <https:> <https:>
<li> <a href="//m.sbmmt.com/link/29a9f8c8460e5e2be4edde557fd83712throne"> Thronsitze <https:> <https:>
<https:>
<https:> <https:> <https:>
<p> anstatt sich auf CSS -Klassen zu verlassen: <https:>
<pre class="brush:php;toolbar:false"> <code class="language-javascript"> $ ('. Nav-menu-toggle'). On ('click', function () {
$ ('nav'). Toggle ();
}); <https:> <https:>
<p> Verwenden Sie <code> Data-Hook <https:> Attribute für widerstandsfähigere Code: <https:>
<pre class="brush:php;toolbar:false"> <code class="language-javascript"> $ ('[data-hook = "nav-menu-toggle"]'). On ('klick', function () {
$ ('[data-hook = "nav-menu"]'). Toggle ();
}); <https:> <https:>
<p> Verbesserung dies mit einer benutzerdefinierten JQuery -Funktion: <https:>
<pre class="brush:php;toolbar:false"> <code class="language-javascript"> $. Extend ({{
Haken: Funktion (HookName) {
return $ (`[data-hook ~ =" $ {HookName || '*'} "]`);
}
});
$ .hook ('nav-menu-toggle'). on ('click', function () {
$ .hook ('nav-menu'). Toggle ();
}); <https:> <https:>
<p> Diese <code> -Hakenfunktion vereinfacht die Selektorverwendung und ermöglicht mehrere, leer getrennte Hakennamen in einem einzelnen Element. <https:>
<https:> <p> Vermeiden Sie anonyme Funktionen: <strong> <https:>
<https:> Verwenden der benannten Funktionen verbessert die Lesbarkeit und Testbarkeit: <p>
<https:> <pre class="brush:php;toolbar:false"> Funktion TogglenavMenu () {
$ .hook ('nav-menu'). Toggle ();
}$ .hook ('nav-menu-toggle'). on ('click', Togglenavmenu); <https:> <https:>
<p> <strong> Umgang mit mehreren Ereignissen: <https:> <https:>
<p> jQuery behandelt effizient mehrere Ereignisse: <https:>
<pre class="brush:php;toolbar:false"> <code class="language-javascript"> $. Hook ('nav-menu-toggle'). On ('klicken Sie auf Keydown-MausEenter', TrackAction); //m.sbmmt.com/link/29a9f8c8460e5e2be4edde557fd83712//m.sbmmt.com/link/29a9f8c8460e5e2Be4edde57fd83712 Single Handler für mehrere Ereignisse für mehrere Ereignisse für mehrere Ereignisse für mehrere Ereignisse für mehrere Ereignisse für mehrere Ereignisse für mehrere Ereignisse für mehrere Ereignisse
$ .hook ('nav-menu-toggle'). on ({{{
'klick': trackclick,
'Keydown': TrackKeydown,
'Mouseenter': TrackMouseger
}); //m.sbmmt.com/link/29a9f8c8460e5e2be4edde557fd83712//m.sbmmt.com/link/29a9f8c8460e5e2Be4eddedeDe57fd83712 Differenz für unterschiedliche Ereignisse für unterschiedliche Ereignisse für unterschiedliche Ereignisse für unterschiedliche Ereignisse für unterschiedliche Ereignisse für unterschiedliche Ereignisse für unterschiedliche Ereignisse.
<https:> Ereignisse mit <https:> off () <p> erfordert Vorsicht; Die Verwendung von Namespaces verhindert eine zufällige Entfernung nicht verwandter Handler: <code>
<https:> <https:> //m.sbmmt.com/link/29a9f8c8460e5e2be4edde557fd83712Https://m.sbmmt.com/link/29A9f8460E5E2BE4EDDE4DE57FD83712 BINT MIT THALTS2E5E2BE4EDDE57FD83712 BINT MIT SAHE
$ .hook ('Click-Track'). On ('Click.Analytics', TrackClick);
//m.sbmmt.com/link/29a9f8c8460e5e2be4edde557fd83712//m.sbmmt.com/link/29a9f8c8460e5e2Be4edde57fd83712 UNBINDE mit Namenspazifik
$ .hook ('Click-Track'). AUS ('Click.Analytics');
//m.sbmmt.com/link/29a9f8c8460e5e2be4edde557fd83712//m.sbmmt.com/link/29a9f8c8460e5e2be4edde557fd83712 Remove all 'analytics' events from all elements
$ ('*'). Aus ('. Analytics'); <pre class="brush:php;toolbar:false"> <code class="language-javascript">
<https:> <https:> Schlussfolgerung: <p> <strong>
<https:> Diese Techniken erzeugen robustere, wartbarere und überprüfbare JQuery-Ereignisereignis-Code. Namespaces sind besonders wertvoll für komplexe Anwendungen und Pluginentwicklung. Die Verwendung von <https:> data-hook <p> -attributen und -funktionen verbessert die Code-Klarheit erheblich und verringert das Risiko unbeabsichtigter Nebenwirkungen. <code></code></p></https:></https:></strong></p></https:></https:></code></pre><div class="contentsignin">Nach dem Login kopieren</div></div></https:></https:>
Das obige ist der detaillierte Inhalt vonEffektive Ereignisbindung mit JQuery. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!