Hãy xem jsfiddle: http://jsfiddle.net/LsNCa/2/JavaScript- biến Phạm vi và xử lý sự kiện
function MyFunc() {
for (var i = 0; i < 2; i++) { // i= 0, 1
var myDiv = $('<div>');
myDiv.click(function(e) {
alert(i); // both the two divs alert "2", not 0 and 1 as I expected
});
$('body').append(myDiv);
}
}
var myFunc = new MyFunc();
Tôi muốn các divs để cảnh báo "0" và "1" tương ứng khi tôi nhấp vào chúng. Nhưng cả hai đều cảnh báo "2".
Khi tôi nhấp vào các div và sự kiện được kích hoạt, trình xử lý tìm giá trị của biến i ở đâu và ở đâu?
Tôi biết rằng việc thêm đóng cửa đạt được mục tiêu của mình. Nhưng tại sao?
có thể trùng lặp với [Vấn đề về vòng lặp Javascript khét tiếng?] (Http://stackoverflow.com/questions/1451009/javascript-infamous-loop-problem) – elclanrs