Maison  >  Article  >  interface Web  >  Introduction détaillée aux méthodes alternatives après la suppression de live dans jQuery 1.9 et versions supérieures

Introduction détaillée aux méthodes alternatives après la suppression de live dans jQuery 1.9 et versions supérieures

黄舟
黄舟original
2017-06-26 09:31:541271parcourir

Selon la description officielle de jQuery, la méthode live n'est plus recommandée en 1.7, et cette méthode a été supprimée en 1.9. Et il est recommandé d’utiliser plutôt la méthode on dans le futur code. La méthode on peut accepter trois paramètres :
événement nom, sélecteur de déclencheur et fonction d'événement.

Ce qui nécessite une attention particulière est : le sélecteur de déclencheur au milieu de la méthode on est le nom de classe, l'identifiant ou le nom d'élément de l'élément HTML sur lequel vous vous trouvez pour ajouter, utilisez-le Vous pouvez obtenir l'effet live.

Par exemple, mon document html a déjà un p avec l'identifiant du parent, et j'ajouterai dynamiquement un span avec la classe de fils à l'intérieur de ce p. Je lie un événement à cette durée, alors je dois écrire comme ceci :

$('#parent').on('click','.son',function(){alert('test')});

Ce sélecteur de déclencheur est en fait le $(e qui détermine les paramètres de l'événement une fois dans JQ .target .is(selector), seul l’objet déclencheur correspondant au sélecteur de déclencheur se déclenchera. Cela se fait en utilisant le mécanisme de bouillonnement d'événements. Le live original utilise également le mécanisme de bouillonnement, donc puisque on peut être implémenté, il n'est pas nécessaire que live existe. C'est juste pour des raisons de compatibilité qu'il a survécu de la version 1.7 à la version 1.9. Il n'y a pas beaucoup de contenu dans cet article. Ensuite, utilisons cette fonction pour faire quelque chose de significatif et démontrons-le ~ Dans les versions inférieures d'IE, la balise A aura une bordure en pointillé lorsque la souris est enfoncée. se concentrer. Nous pouvons résoudre ce problème à condition de faire quelque chose dans le cadre de cet événement mondial. Le focus ne bouillonne pas dans les navigateurs modernes, mais il peut bouillonner dans les navigateurs plus anciens. Il est donc efficace d’utiliser live pour se concentrer dans les navigateurs de version inférieure. Dans les versions antérieures à jQuery 1.9, on peut écrire comme ceci :

$("a").live("focus",function(){  this.blur();
});

Puisque live a été supprimé après jQuery 1.9, on devrait écrire comme ceci :

$(document).on("focus","a",function(){  this.blur();
});

Il y a un autre problème à noter. Si vous passez de la méthode d'écriture en direct à la méthode d'écriture en direct, n'oubliez pas d'ajuster la chaîne d'appel. Parce que la valeur de retour de live est l'objet déclenché par l'événement, et using on est sur l'objet conteneur.

//jQuery1.9-$("#panel").find("p").live("click",function(){
  alert("x");
}).addClass("x");//jQuery1.9+$("#panel").on("click","p",function(){
  alert("x");
}).find("p").addClass("x");   

Faites attention au find("p") à la fin, sinon il n'y aura pas de problème.

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!

Déclaration:
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