Les utilisateurs de jQuery expérimentés connaissent la liaison des événements, mais l'optimiser améliore la robustesse et la maintenabilité du code. Cet article explore les techniques pour la liaison des événements JQuery plus efficace. Améliorations de clés:
au lieu des classes CSS séparent la logique de présentation et d'interaction. Les modifications des classes CSS ne casseront pas JavaScript. <https:>
<https:> <li> Fonctions nommées en tant que gestionnaires: <strong> Le remplacement des fonctions anonymes par des fonctions nommées améliore la lisibilité, permet la réutilisabilité et simplifie les tests. <https:>
<https:> <li> Espaces de noms pour un contrôle précis: <strong> La fonctionnalité de l'espace de noms de JQuery fournit un contrôle granulaire de la liaison des événements et du nettoyage de la liaison, de la simplification, en particulier dans les plugins. <https:>
<https:>
<https:> <p> Stratégie de sélecteur améliorée: <strong> <https:>
<https:> Considérez une simple bascule du menu de navigation: <p>
<https:> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"> <code class="language-html"> Toggle Nav Menu <button data-hook="nav-menu-toggle">
<https:>
<nav data-hook="nav-menu">
<ul> <li> West Philadelphie <a href="https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712"> <https:>
<https:><a href="https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712cab"> CAB WISTLING <https:> <https:>
<li> <a href="https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712throne"> trône assis <https:> <https:>
<https:>
<https:> <https:> <https:>
<p> au lieu de compter sur les classes CSS: <https:>
<pre class="brush:php;toolbar:false"> <code class="language-javascript"> $ ('. Nav-menu-toggle'). Sur ('cliquez', fonction () {
$ ('nav'). toggle ();
}); <https:> <https:>
<p> Utiliser <code> Attributs de Data-Hook <https:> pour plus de code résilient: <https:>
<pre class="brush:php;toolbar:false"> <code class="language-javascript"> $ ('[data-hook = "nav-menu-toggle"]'). Sur ('click', function () {
$ ('[data-hook = "nav-menu"]'). toggle ();
}); <https:> <https:>
<p> Améliorer davantage cela avec une fonction jQuery personnalisée: <https:>
<pre class="brush:php;toolbar:false"> <code class="language-javascript"> $.
Hook: fonction (crochet) {
return $ (`[data-hook ~ =" $ {hookname || '*'} "]`);
}
});
$ .hook ('nav-menu-toggle'). sur ('click', function () {
$ .hook ('nav-menu'). toggle ();
}); <https:> <https:>
<p> Cette fonction <code> crochet <https:> simplifie l'utilisation du sélecteur et permet de plusieurs noms de crochets séparés dans un seul élément. <https:>
<p> <strong> Éviter les fonctions anonymes: <https:> <https:>
<p> L'utilisation de fonctions nommées améliore la lisibilité et la testabilité: <https:>
<pre class="brush:php;toolbar:false"> <code class="language-javascript"> fonction togglenavmenu () {
$ .hook ('nav-menu'). toggle ();
}$ .hook ('nav-menu-toggle'). sur ('click', togglenavmenu); <https:> <https:>
<p> <strong> Gestion de plusieurs événements: <https:> <https:>
<p> jQuery gère efficacement plusieurs événements: <https:>
<pre class="brush:php;toolbar:false"> <code class="language-javascript"> $. Hook ('nav-menu-toggle'). Sur ('cliquez sur keydown miseenter', trackAction); https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712 Single handler for multiple events
$ .hook ('nav-menu-toggle'). sur ({
'Cliquez ": TrackClick,
«Keydown»: trackKeydown,
«MouseEnter»: TrackMouseenter
}); https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712 Handlers différents pour des événements différents pour des événements différents <https:> <https:>
<p> Événements non liés à <code> off () <https:> nécessite de la prudence; L'utilisation des espaces de noms empêche le retrait accidentel des gestionnaires non apparentés: <https:>
<pre class="brush:php;toolbar:false"> <code class="language-javascript"> https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712
$ .hook ('click-track'). sur ('click.analytics', trackclick);
https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712
$ .hook ('click-track'). off ('click.analytics');
https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712
$ ('*'). off ('. Analytics'); <https:> <https:>
<p> <strong> Conclusion: <https:> <https:>
<p> Ces techniques créent un code de gestion de l'événement JQuery plus robuste, maintenable et testable. Les espaces de noms sont particulièrement utiles pour les applications complexes et le développement des plugins. L'utilisation des attributs de Data-Hook <code> Data-Hook <https:> et des fonctions nommées améliore considérablement la clarté du code et réduit le risque d'effets secondaires involontaires. <https:></https:></https:></code></p></https:></https:></strong></p></https:></https:></code></pre><div class="contentsignin">Copier après la connexion</div></div></https:></https:>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!