Qualcuno sa come attivare un evento in javascript per un elemento dopo che è stato aggiunto al DOM?Evento Javascript trigger su Aggiungi a DOM
L'idea generale è qualcosa di simile:
var elem = document.createElement('div');
elem.addEventListener('ON_ADD_TO_BODY', function(){console.log(elem.parentNode)});
//... LATER ON ...
parentElemInBody.appendChild(elem); // <- Event is triggered here after append
Ci sono alcune funzioni che non devono essere attivati fino a quando si aggiunge l'elemento al DOM in modo che avrebbe senso ritardare l'esecuzione fino a quando si aggiunge l'elemento .
C'è un modo per farlo senza aver bisogno di chiamarli in seguito o dovrei fare qualche trucco che include un setTimeout
e un controllo per vedere se l'elemento è stato già aggiunto al DOM?
Non sapevo nemmeno esistessero! Ho bisogno di supportare IE9- però :(e quei commenti sui risultati delle prestazioni non sono molto rassicuranti.So che non ho specificato che nella domanda così la tua risposta è corretta, ma ho bisogno di prendere in considerazione tutti. Esiste un approccio ibrido che, per lo meno, supporta IE9-? – sgcharlie
Per i browser che non supportano quanto sopra, potrebbe essere necessario implementare un timer che controlli periodicamente i figli dell'elemento genitore e attiva alcune funzioni di callback. – techfoobar
Gli eventi di mutazione sono deprecati per ora. Prendi in considerazione l'utilizzo di [Mutation Observers] (https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver). – ZitRo