Comment ajouter et supprimer un écouteur d'événement à l'aide d'une fonction avec des paramètres?

Désolé si c'est une question qui revient souvent, mais je ne pouvais pas trouver toutes les réponses qui semblaient pertinentes par le biais de la recherche.

Si je attacher un écouteur d'événement comme ceci:

window.addEventListener('scroll', function() { check_pos(box); }, false);

il ne semble pas fonctionner pour essayer de le supprimer plus tard, comme ceci:

window.removeEventListener('scroll', function() { check_pos(box); }, false);

Je suppose que c'est parce que le addEventListener et removeEventListener méthodes voulez une référence à la même fonction, alors que j'ai fourni avec des fonctions anonymes, qui, bien qu'identique dans le code, ne sont pas littéralement le même.

Comment puis-je modifier mon code pour obtenir de l'appel à removeEventListener de travail? La "boîte" argument fait référence au nom d'un <iframe> que je suis suivi à l'écran; c'est, je veux être en mesure de souscrire à la scroll événement une fois pour chaque <iframe> que j'ai (la quantité varie en fonction), et une fois que le check_pos() des mesures de la fonction d'une certaine position, il va appeler une autre fonction et aussi enlever l'écouteur d'événement pour libérer des ressources système.

Mon intuition est que la solution implique la fermeture et/ou le nom de la fonction anonyme, mais je ne suis pas sûr exactement ce à quoi ça ressemble, et il serait souhaitable que d'un exemple concret.

L'espoir qui fait sens. Merci pour toute aide!

InformationsquelleAutor Bungle | 2010-06-07