Maison > interface Web > js tutoriel > le corps du texte

Ces pièges de JQuery, classement de l'index des pièges de JQuery

PHPz
Libérer: 2017-04-23 09:35:49
original
1305 Les gens l'ont consulté

1 Utilisation aveugle des sélecteurs

Indice de tromperie : 200

JQueryLes appels de sélecteur sont très coûteux et les appels répétés sont moins efficaces. La méthode de mise en cacheobjet doit être utilisée ou la méthode des appels chaînés doit être utilisée.

//错误的写法
$("#button").click(function(){
    $('#list li').addClass('strong');
    $('#list li').css('color', 'red');
});
//正确的写法
$("#button").click(function(){
    $lis = $('#list li');
    $lis.addClass('strong');
    $lis.css('color', 'red');
});
//更好的写法
$("#button").click(function(){
    $('#list li').addClass('strong').css('color', 'red');
});
Copier après la connexion

2 La sélection globale est inefficace

Indice de trading : 100

Utilisez autant que possible la recherche contextuelle pour éviter l'utilisation de la sélection globale . Le sélecteur global recherchera l'intégralité du document, ce qui est très inefficace.

//错误的写法
$(".active").method();
//正确的写法
var ul = $("#myList");
$(".active",ul).method();
Copier après la connexion

3 Copier Fonction anonyme

Indice de trading : 50

Évitez de copier plusieurs fois les fonctions anonymes, séparez les fonction anonyme afin qu'elle puisse être appelée plusieurs fois par d'autres objets.

//错误的写法
$('#myp').click( function(){
   //一些操作
});
//正确的写法
function pClickFn (){
   //一些操作   
}
$('#myp').click( pClickFn );
Copier après la connexion

4 Utilisation abusive de l'intégralité d'ajax

Indice de tromperie : 30

Lors de l'utilisation d'ajax pour les requêtes de données, évitez d'utiliser la méthode de rappel complète, utilisez plutôt la méthode du succès. Le rappel complet est déclenché, que la requête réussisse ou échoue.

//错误的写法
$.ajax({
  url: "http://tools.42du.cn/jsonp/student/all",
}).complete(function( data ) {
    //一些操作  
});
//正确的写法
$.ajax({
  url: "http://tools.42du.cn/jsonp/student/all",
}).success(function( data ) {
    //一些操作  
});
Copier après la connexion

5 Utilisation abusive des appels en chaîne

Indice de triche : 20

L'utilisation des appels en chaîne entraînera un changement de dégradé de l'objet Il est supprimé avant qu'il ne soit terminé, c'est-à-dire que la méthode Remove sera appelée avant que la méthode fadeOut ne soit terminée. Lorsque vous devez exécuter la deuxième méthode une fois la première méthode terminée, veuillez utiliser le rappel, qui est la deuxième méthode.

//错误的写法
$("#myp").click(function(e) {
  $(this).fadeOut("slow").remove();
});
//正确的写法
$("myp").click(function(e){
  $(this).fadeOut("slow", function(){
    $(this).remove();
  });
});
Copier après la connexion

6 ÉvénementLiaisons multiples

Indice de triche : 20

Si vous liez (liez) le même événement plusieurs fois, la réponse sera exécutée plusieurs fois. Pour éviter plusieurs exécutions, veuillez d'abord dissocier l'événement, puis le relier à nouveau.

//避免响应多次执行
$("myp").unbind("click").bind("click");
Copier après la connexion

7 Mauvaise utilisation de cet indicateur

Indice de tromperie : 10

Cet indicateur existe dans un certain contexte Quand cela pointe vers un. objet différent lorsque le contexte change. Si vous souhaitez toujours appeler ceci dans le contexte d'origine, vous devez mettre en cache l'objet this d'origine dans le contexte d'origine ($that = $(this)).

//错误的写法
$( "#myList").click( function() {
   $(this).method(); 
   $("#myList li").each( function() {
      //this并不指向myList
      $(this).method2(); 
   })
});
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal