Questa è fondamentalmente una domanda successiva a questo: Can't pass event to addEventListener: closure issue.Come rimuovere EventListener che è stato aggiunto utilizzando la chiusura?
Ho letto quasi tutte le domande correlate e non riesco a trovare la risposta a questo.
La funzione seguente viene eseguita all'interno di un loop in cui i parametri vengono estratti da una matrice di dati. Con questa funzione sono in grado di passare diversi/nuovi parametri a ciascuna istanza di un listener di eventi. La funzione esterna consente di incapsulare i valori dei parametri all'interno della chiusura in modo che i valori effettivi siano disponibili, non solo i riferimenti ai titolari. Inoltre, la funzione passevent passa l'evento alla funzione response. Infine, la funzione response ha tutte le informazioni appropriate per rispondere all'evento click. Funziona alla grande Il problema è che non riesco a capire come rimuovere il listener di eventi in un secondo momento. Ho provato tutto quello che riesco a pensare. Per favore aiuto. Come posso: removeEventListener?
(function outerfunction(i, f) {
elementname.addEventListener("click", function passeventfunction(e) {
responsefunction(e, f, i); });})(parameter1, parameter2);
anche, se qualcuno potrebbe contribuire a chiarire ciò che sta accadendo qui. Si tratta di una chiusura all'interno di una chiusura? C'è il pericolo di lasciare una perdita di memoria o qualcosa del genere? Grazie!
è necessario salvare un riferimento a 'passeventfunction' qualche parte in modo che è possibile passare che in' removeEventListener'. – Bergi