Quelle est la différence entre jQuery off " (éteint) et unbind()
J'ai été en utilisant jQuery .bind() et .unbind() pour gérer un événement d'animation sur parchemin.
$(window).bind('scroll', function(){
... code ...
if(code_was_successful){
$(window).unbind(e);
}
});
Que de 1,7 (je suis en utilisant 1.11) nous sommes censés utiliser .sur() et .off(), mais .off() ne semble pas avoir de support pour un gestionnaire d'événement déliaison lui-même. Pour la normale sur les événements et tel, je dois sauver le gestionnaire à une variable et de mettre en place un autre gestionnaire d'événement pour le dissocier (ce qui est contraire au but), et pour faire défiler les événements qu'il est impossible depuis .off() nécessite un sélecteur pour séparer un gestionnaire spécifique, et des événements de défilement peut pas en avoir un.
Quel est le moyen moderne de faire cela?
- Lorsque vous appelez .unbind, il appelle .off. Je ne comprends pas très bien ce que vous obtenez en.
- Votre question semble un peu floue. Le point de l'ensemble de
.off()
est de "Supprimer un gestionnaire d'événements." Qui vient tout droit de jQuery documentation.$(window).off('scroll')
... - Que voulez-vous dire exactement par "moins bonne"?
- "il est impossible depuis .off() nécessite un sélecteur pour séparer un gestionnaire spécifique" Non, il ne le fait pas. Aussi, qu'est-ce que
e
dans$(window).unbind(e);
? Si c'est le cas de l'objet, alors oui, c'est la grande différence entre.undbind
et.off
, au moins par la documentation. Mais depuis.unbind
vraiment juste des appels.off
, vous pourriez être en mesure de simplement passer de l'objet d'événement. - ^ Bien que je ne recommande pas nécessairement, car il n'est pas dans la documentation officielle. Ils pourraient retirer de cette "fonctionnalité" une fois
.unbind
est supprimé (détails pour.off
: github.com/jquery/jquery/blob/...). - Kevin B et Felix Roi - tout à fait raison. C'est ce que je reçois pour la lecture des docs au lieu de code source. Si vous publiez une réponse, je vais sélectionner qu'un seul. Merci!
Vous devez vous connecter pour publier un commentaire.
Utiliser un fonction nommée expression:
Non, il ne fonctionne pas. Tout comme
.on
n'a pas besoin d'un sélecteur. Vous avez seulement besoin de le sélecteur si vous souhaitez vous séparer d'un délégué du gestionnaire d'événement.Comme vous pouvez le lire dans le la documentation de
.off
sur le sélecteur argument:Donc, si vous n'utilisez pas l'un dans
.on
, vous n'utilisez pas un dans.off
.vous pouvez utiliser
.on()
et.off()
comme suit:.off()
est le sélecteur suivie par le gestionnaire. Je ne crois pas que la syntaxe ci-dessus est valide....on
:.on('click', func)
et.on('click', 'span', func)
(et même qu'ils signifient des choses différentes).