<article>
タグ付きのすべての要素に「クリック」のEventListenerを設定するJavaScriptファイルがあります。イベントが発生したときにクリックされた記事のIDを取得したい。何らかの理由で、私のコードは何も生成しません!
私のJavaScript:
articles = document.getElementsByTagName('article');
articles.addEventListener('click',redirect(e),false);
function redirect(e){
alert(e.target.id);
}
なぜこれが機能しないのですか?ところで、私の記事の設定は、ウィンドウが読み込まれたときに呼び出される関数にあります。その関数には他にも機能するものがあるため、確実に機能することはわかっています。
編集
そこで、コードを修正して、ループしてすべての記事要素にリスナーを追加すると、何も入っていないアラートボックスが表示されます。IDなしでe.targetを出力しようとすると、すべての要素に対して次のメッセージが表示されます。
[object HTMLHeadingElement]
助言がありますか?
別の編集
私の現在のJavaScriptコード:
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);
これは、ページの読み込みが完了したときにアラートボックスを表示していますが、いまいましいものをクリックしていないことを考慮していません:O