Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.03.2018, 15:59
Новичок на форуме
Отправить личное сообщение для Snova_s_vami Посмотреть профиль Найти все сообщения от Snova_s_vami
 
Регистрация: 21.03.2018
Сообщений: 2

Циклическое назначения событий
Добрый вечер, помогите со следующей проблемой.
var testCount = 0;
setInterval(function(){
    $('.сontainer').append('<button class = "btn">'+testCount+' кнопка</button>');
    $('.btn').eq(testCount).click(function(){
        console.log(testCount);   
    });
    testCount++;
},1000);


Почему новые события назначаются на весь класс, я же указываю, что применять их необходимо только на определенный номер. То есть, я могу нажать на любую кнопку из созданных и она выведет текущий номер итерации, а не тот, который в неё заложен изначально.
Я так понимаю, что из-за того, что событие при нажатии берет новое значение переменной. Если так, то как правильно это реализовать?

Последний раз редактировалось Snova_s_vami, 21.03.2018 в 16:02.
Ответить с цитированием
  #2 (permalink)  
Старый 21.03.2018, 16:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Snova_s_vami,
сделайте функцию для строк 3 и 4
Ответить с цитированием
  #3 (permalink)  
Старый 21.03.2018, 16:08
Новичок на форуме
Отправить личное сообщение для Snova_s_vami Посмотреть профиль Найти все сообщения от Snova_s_vami
 
Регистрация: 21.03.2018
Сообщений: 2

Собственно... и всё, помогло. Спасибо
Ответить с цитированием
  #4 (permalink)  
Старый 21.03.2018, 16:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Snova_s_vami,

Пример ошибочного использования
Ответить с цитированием
  #5 (permalink)  
Старый 21.03.2018, 16:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Snova_s_vami,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function() {
var testCount = 0;
setInterval(function(){
    (function(testCount) {
    $('<button class = "btn">'+testCount+' кнопка</button>').appendTo('.сontainer')
    .click(function(){
        console.log(testCount);
    });
    })( testCount++)
},1000);

});
  </script>
</head>

<body>
<div  class="сontainer"></div>

</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
делегирование событий Tecvid Events/DOM/Window 2 18.04.2015 16:04
Клонирование обработчиков событий NapalmRain Events/DOM/Window 9 14.11.2014 15:30
Ползунок JQuery: несколько событий? Veterinar jQuery 9 10.01.2014 20:57
Переопределение событий lispik jQuery 4 13.01.2011 12:30
Скопировать обработчики событий с одного элемента на другой. Jurasmi Events/DOM/Window 3 10.11.2010 19:03