className相同的多個元素分別設定監聽事件(原生JS實現)
阿新 • • 發佈:2019-01-04
JS使用for迴圈動態生成多個div,HTML大概是這樣:
<div class='title'> y </div>
<div class='title'> i </div>
<div class='title'> x </div>
<div class='title'> z </div>
<div class='title'> m </div>
希望每個div能對應不同的監聽事件,在網上尋尋覓覓終於找到了解決辦法:
var tt = getElementsByClassName("title"); for (i = 0; i < tt.length; i++) { var ul = document.querySelectorAll('.title')[i]; handler = function(event){ var e = event || window.event; var target = e.target || e.srcElement; console.log(target.innerHTML); }; if (window.addEventListener){ ul.addEventListener("click",handler,false); } else if (window.attachEvent){ ul.attachEvent("onclick",handler); } }
實際效果如圖:
本文解決方法摘錄自 https://segmentfault.com/q/1010000002804347 Lemures 的回答