Domanda

Come posso aggiungere un evento click usando addEventListener (window.onload) quando vengono generati i tag in questione il server (tramite una richiesta xmphttp, nientemeno)?

Grazie!

È stato utile?

Soluzione

Devi applicare i gestori di eventi dopo gli elementi sono stati inseriti nel DOM

Altri suggerimenti

Puoi provare a gestire gli eventi per gli elementi padre, che sono disponibili come DOM caricati, quindi ottenere l'elemento relativo all'evento.

<ul id="list">
  <li id="first">The first</li>
  <li id="second">The second</li>
  <li id="third">The third</li>
</ul>

document.getElementById('list').onclick(function(e){
  o = e.originalTarget;
  // if you click on second li o will bi the same as document.getElementById('first')
  // even if li with id "first" is inserted to DOM after creating this event handler to "list"
  // so here you can perform actions with it
  // hope it will help
});

Grazie a tutti.

Ho risolto questo problema aggiungendo il codice seguente a " in caso di successo " evento della richiesta XMLHTTP che ha popolato il DOM con gli elementi provenienti dal server. Questo ha funzionato per me. Josh, mi hai fatto muovere la testa nella giusta direzione (anche se sarebbe stato bello vedere un'illustrazione in codice) quindi ho contrassegnato la tua risposta come risposta.

if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {

                        var m_sel=document.getElementById("fcat");

                        if (m_sel) {

                            var maxi = m_sel.options.length;

                            for( var i = 0; i < maxi; i++ )
                            {
                                var option = m_sel.options[i];
                                    option.addEventListener( "click", toggleElem, true );

                            }                                 

                        }        
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top