前提・実現したいこと
親要素(id = red)だけにaddEventListenerの内容を反映させたい。
###現状
親要素(id = red)だけではなく、
子要素(id = childNode2)に対してもaddEventListenerの内容が反映されてしまう。
ネットで調べたところ、イベントキャプチャリング関係が怪しいのかとは思っているのですが、
特に解決策が分からず難航しております。
https://itstudio.co/2013/07/16/1475/
上記の様な記事はいくつか読みましたが、前提が違う為参考にはなりませんでした。
(記事の内容は親と子の要素、どちらにもonClickがある前提)
もしも分かる方がいましたら、教えて頂けると幸いです。
該当のソースコード
html
1<div id = 'red' class = 'red'> 2 親ノード 3 <p id ='childNode2'>子ノード</p> 4</div>
JavaScript
1/*クリックイベント追加*/ 2 red = document.getElementById('red'); 3 set_event_onclick(red); 4 5 6 function set_event_onclick(targertClass){ 7 targertClass.addEventListener("click", testClick); 8 } 9 10/*クリック時の挙動*/ 11 function testClick(e){ 12 console.log('クリックされたよ'); 13 console.log(e); //何がクリックされたか 14 } 15
試したこと
・addEventListenerの第3引数をtrueにする
→キャプチャリングフェーズにすれば、親要素でたどり着いた時点でaddEventListenerが止まるかと思ったがダメ
補足情報(FW/ツールのバージョンなど)
firefox 84.0.2(最新版)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/15 01:30
2021/01/15 01:41
2021/01/15 06:48