Comment remplacer précédemment fixé jquery gestionnaire d'événement?
Dans mon code, un gestionnaire d'événements pour un élément est de définir les changements que l'élément css hauteur de 100px. À quelque part d'autre, je veux un autre gestionnaire d'événements à exécuter si certaines conditions se rencontrent, qui devrait remplacer le précédent gestionnaire d'événement et d'en changer la hauteur de 200px.
Est-il un moyen de le faire, ou pour effacer toutes les données déjà de définir des gestionnaires d'événements pour un élément?
- Vous pouvez vérifier les conditions à l'intérieur du gestionnaire d'événement, non?
Vous devez vous connecter pour publier un commentaire.
Oui, il suffit d'utiliser
.off()
, commeC'est un peu un hack, mais il semble que vous essayez de pirater sur quelqu'un d'autre code, sans la possibilité de le modifier directement, de sorte que peut-être ce que vous avez à recourir à l'.
Si vous avez juste besoin d'appeler quelque chose après leur
document.ready()
et vous n'avez pas le contrôle de l'ordre desdocument.ready()
états, alors vous pouvez mettre un peu de code dans un court délai d'attente comme ça à l'intérieur de votre document.prêt gestionnaire:La
setTimeout()
vais courir APRÈS tous les documents.prêt() les gestionnaires ont couru.if ( $(ele).hasHandler('click') ) /*clear event/* else setTimeout(this, 1000);
, afin de s'assurer que l'événement a été mis en avant que ma fonction est appeléeD'une autre manière:
Charge est exécuté après le document prêt