Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.08.2015, 21:37
Аватар для qwe88
Кандидат Javascript-наук
Отправить личное сообщение для qwe88 Посмотреть профиль Найти все сообщения от qwe88
 
Регистрация: 14.06.2014
Сообщений: 137

Функция 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>
Ответить с цитированием
  #2 (permalink)  
Старый 03.08.2015, 21:48
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

<!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>
Ответить с цитированием
  #3 (permalink)  
Старый 03.08.2015, 22:05
Аватар для qwe88
Кандидат Javascript-наук
Отправить личное сообщение для qwe88 Посмотреть профиль Найти все сообщения от qwe88
 
Регистрация: 14.06.2014
Сообщений: 137

Здорово!
Буду переваривать, спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 02.11.2016, 11:28
Новичок на форуме
Отправить личное сообщение для Zagin Посмотреть профиль Найти все сообщения от Zagin
 
Регистрация: 02.11.2016
Сообщений: 2

...а если внутренняя функция замыкания - с параметром?
Приветствую всех!
У меня - сходная проблема с замыканиями. Вроде и начал прозревать кое что об их необходимости в JS, но всё равно пока не всё получается. Вот в моём случае необходимо, чтобы при клике на ячейке таблицы (фактически - на DIV'е) рядом с некоторым смещением показывалась таблица с цветовыми кодами. Функцию смещения я подсмотрел в Тырнете, на конкретном ОТДЕЛЬНОМ элементе работает нормально. А вот подключить её в цикле сразу на все DIV'ы определённого класса - не получается: не могу передать в неё параметр (конкретный текущий DIV).
Подскажите, пожалуйста, как правильно сделать.
Прилагаю HTML+JS файлы в архиве.
Вложения:
Тип файла: zip MyVariant.zip (1.4 Кб, 0 просмотров)
Ответить с цитированием
  #5 (permalink)  
Старый 03.11.2016, 09:34
Новичок на форуме
Отправить личное сообщение для Zagin Посмотреть профиль Найти все сообщения от Zagin
 
Регистрация: 02.11.2016
Сообщений: 2

...а если внутренняя функция замыкания - с параметром?
Может, кому пригодится - ответ таки найден. Получен на другом форуме.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не вызывается функция с вложенными циклами в onclick из подключенного файла Karabeynik Общие вопросы Javascript 2 15.04.2015 00:22
Почему не работает функция в атрибуте onclick? Dimaz Events/DOM/Window 7 23.07.2014 20:52
Функция в цикле starkexpo13 Общие вопросы Javascript 3 06.03.2013 19:12
Функция которая работает на OnLoad не хочет работать на OnClick libinstyle Элементы интерфейса 6 23.03.2010 01:42
Функция onclick для созданных потомков Groonel Общие вопросы Javascript 6 24.04.2009 18:35