Ho un file javascript che imposta un EventListener di "clic" su ogni elemento con il tag <article>
. Voglio ottenere l'ID dell'articolo cliccato quando l'evento si attiva. Per qualche ragione, il mio codice non produce nulla!Listener di eventi Javascript in clic su più elementi e ottenere l'ID di destinazione
mio javascript:
articles = document.getElementsByTagName('article');
articles.addEventListener('click',redirect(e),false);
function redirect(e){
alert(e.target.id);
}
Perché non è questo lavoro? BTW il mio articolo di installazione è in una funzione chiamata quando la finestra viene caricata, e so che funziona sicuramente perché quella funzione ha altre cose che funzionano.
EDIT
Così ho fissato il mio codice in modo che in loop e aggiungere l'ascoltatore ad ogni elemento articolo, e ora ho una finestra di avviso con niente dentro. Quando si cerca di uscita e.target senza l'ID, ottengo il seguente messaggio per ogni elemento:
[object HTMLHeadingElement]
Qualche suggerimento?
ALTRO EDIT
Il mio codice javascript corrente:
function doFirst(){
articles = document.getElementsByTagName('article');
for (var i = 0; i < articles.length; i++) {
articles[i].addEventListener('click',redirect(articles[i]),false);
}
}
function redirect(e){
alert(e.id);
}
window.addEventListener('load',doFirst,false);
Questo sta mostrando le mie scatole di avviso quando la pagina terminato il caricamento, senza considerare che non ho fatto clic su un bel niente : O
Questo sta mostrando l'ID, ma prima ancora di fare clic sull'elemento! Come posso risolvere questo? – arielschon12
@ arielschon12: Non ho capito cosa stai cercando di dire? Stai dicendo che mostra allerta, anche senza fare clic sull'elemento. Non è possibile. –
Questo è esattamente ciò che sta accadendo. Nel momento in cui la pagina viene caricata ricevo le caselle di avviso che spuntano con l'id dell'elemento. – arielschon12