2017-08-23 118 views
0

當我嘗試動態地使用HTML元素填充包裝元素,然後爲該元素添加EventListener時,它只使用最後一個值。動態添加EventListener不能按預期工作

window.onload=function(){ 
 
\t sW=""; 
 
\t for(var i = 0; i < 5; i++) { 
 
\t \t var e = document.createElement('div'); 
 
\t \t e.innerHTML = "test div number "+i; 
 
\t \t e.addEventListener('click', function() {alert("t:"+i);}); 
 
\t \t document.getElementById('wrap').appendChild(e); 
 
\t \t } \t 
 
\t }
<html> 
 
<body> 
 
<div id="wrap"></div> 
 
</body> 
 
</html>

回答

0

這是因爲var保持的參考變量。改爲使用let

+0

完美。這樣可行!! –