Как связать несколько событий с несколькими элементами, используя цикл for в JS? - PullRequest
1 голос
/ 20 февраля 2011

хаи.Я изучал JS в последнее время.Как связать несколько событий с несколькими элементами, используя цикл?Вот пример того, что я пытаюсь сделать.Допустим, у меня есть несколько div с идентификаторами $ box1, # box2, # box3 ... # box9 и т. Д. Почему это не работает?(я использую jquery).

for (var i; i<8; i++){
    $('#box' + i).click(function(){alert('hai')});
}

Я знаю, что вместо этого могу сделать то же самое:

$('div').each(function(){
    $(this).click(function(){alert('hai')});
});

Однако я хотел бы знать, почему первый фрагмент кода не будет работать какя намеревался это сделать.

1 Ответ

1 голос
/ 20 февраля 2011

В javascript простое определение переменной с помощью var i; не делает ее нулевой и «зацикливаемой».

Так что вам просто нужно присвоить число переменной i.

for (var i = 0;

Также обратите внимание, что вы не можете знать, что i находится внутри обратного вызова из-за закрытия JavaScript.

...