1.實例一:
var nodes = document.getElementsByTagName('button');
for (var i = 0; i < nodes.length; i++) {
nodes[i].addEventListener('click', function() {
console.log('You clicked element #' + i);
});
}
爲了解決閉包所帶來的影響,輸出預期的效果。有兩種解決方案。
方法一:使用IIFE
var nodes = document.getElementsByTagName('button');
for (var i = 0; i < nodes.length; i++) {
nodes[i].addEventListener('click', (function(num) {
console.log('You clicked element #' + num);
})(i));
}
方法二:使用外部函數
function handler(i){
console.log('You clicked element #' + i);
}
var nodes = document.getElementsByTagName('button');
for (var i = 0; i < nodes.length; i++) {
nodes[i].addEventListener('click',handler(i));
}