Non interceptée RangeError: le Maximum de la pile d'appels de taille dépassait, JavaScript
J'ai un problème
open: function($type) {
//Some code
document.getElementById($type).addEventListener("click", l.close($type), false);
},
close: function($type) {
//There is some code too
document.getElementById($type).removeEventListener("click", l.close($type), false);
//^ Recursion & Uncaught RangeError: Maximum call stack size exceeded
}
Ce que je fais mal? Sans cela, cliquez sur l'écouteur d'événement que tout fonctionne bien. Et qu'est-ce que le troisième paramètre (vrai|faux)? Merci.
developer.mozilla.org/en/DOM/element.removeEventListener le troisième paramètre flags, si vous voulez ou non l'écouteur d'événement pour l'utilisation de la capture (par opposition à ébullition) sur l'ajout et de la suppression ou non de l'événement a été ajouté en tant que tel.
OriginalL'auteur anony_root | 2012-02-29
Vous devez vous connecter pour publier un commentaire.
Vous appelez le
close
fonction dans leaddEventListener
etremoveEventListener
lorsque vous essayez de passer un argument (provoquant une boucle infinie). Au lieu de cela il vous suffit de passer la référence à la fonction comme suit:Et:
Il définit si le gestionnaire doit être exécuté lors de la capture ou de la phase de propagation: quirksmode.org/js/events_order.html
OriginalL'auteur Lycha
Ou vous pourriez avoir deux fonctions Javascript avec le même nom.
OriginalL'auteur Khizer Jalal