1. 程式人生 > >className相同的多個元素分別設定監聽事件(原生JS實現)

className相同的多個元素分別設定監聽事件(原生JS實現)

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 的回答