Функция onclick в цикле
Добрый день!
Помогите, пожалуйста, решить задачу. Нужно что бы при клике по диву, выскакивал алерт с номером. Что у меня не так?
<div class="test">
111
</div>
<div class="test">
222
</div>
<div class="test">
333
</div>
<div class="test">
444
</div>
<script>
var per = document.getElementsByClassName("test");
var i;
for(i=0; i<per.length; i++){
per[i].onclick = function(){
alert(i);
};
}
</script>
|
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>ГГ</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<style>
*{
margin:0;
padding:0;
outline: 0;
}
.test {
display: inline-block;
width: 50px;
height: 50px;
border: 1px solid black;
}
</style>
</head>
<body>
<div class="test">
111
</div>
<div class="test">
222
</div>
<div class="test">
333
</div>
<div class="test">
444
</div>
<script>
var per = document.getElementsByClassName("test");
for(var i=0; i<per.length; i++){
(function(n){
per[n].onclick = function(){
alert(n+1);
}
}(i));
}
</script>
</body>
</html>
|
Здорово!
Буду переваривать, спасибо! |
...а если внутренняя функция замыкания - с параметром?
Вложений: 1
Приветствую всех!
У меня - сходная проблема с замыканиями. Вроде и начал прозревать кое что об их необходимости в JS, но всё равно пока не всё получается. Вот в моём случае необходимо, чтобы при клике на ячейке таблицы (фактически - на DIV'е) рядом с некоторым смещением показывалась таблица с цветовыми кодами. Функцию смещения я подсмотрел в Тырнете, на конкретном ОТДЕЛЬНОМ элементе работает нормально. А вот подключить её в цикле сразу на все DIV'ы определённого класса - не получается: не могу передать в неё параметр (конкретный текущий DIV). :cray: Подскажите, пожалуйста, как правильно сделать. Прилагаю HTML+JS файлы в архиве. |
...а если внутренняя функция замыкания - с параметром?
Может, кому пригодится - ответ таки найден. Получен на другом форуме.
|
| Часовой пояс GMT +3, время: 08:46. |