Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.11.2015, 22:03
Аватар для spo
spo spo вне форума
Профессор
Отправить личное сообщение для spo Посмотреть профиль Найти все сообщения от spo
 
Регистрация: 11.05.2011
Сообщений: 213

Не срабатывает событие click на динамически добавленный класс
Подскажите почему не работает событие click по кнопке btn-2 после клика по btn?
http://jsfiddle.net/tv0pzuw0/10/
Ответить с цитированием
  #2 (permalink)  
Старый 16.11.2015, 22:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

spo,
потому что элемента .hello div.btn-2 ещё нет, а раз нет то и клик не назначить, назначайте тому что есть.
Ответить с цитированием
  #3 (permalink)  
Старый 16.11.2015, 22:17
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

spo,
здесь ищите проблему .hello div.btn-2 !
Ответить с цитированием
  #4 (permalink)  
Старый 16.11.2015, 22:31
Аватар для spo
spo spo вне форума
Профессор
Отправить личное сообщение для spo Посмотреть профиль Найти все сообщения от spo
 
Регистрация: 11.05.2011
Сообщений: 213

Сообщение от рони Посмотреть сообщение
spo,
потому что элемента .hello div.btn-2 ещё нет, а раз нет то и клик не назначить, назначайте тому что есть.
Так ведь on('click') же использую

И что значит нет? После клика на btn еще как есть.
Ответить с цитированием
  #5 (permalink)  
Старый 16.11.2015, 22:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от spo
И что значит нет?
то и значит что нет
Сообщение от spo
Так ведь on('click')
Сообщение от рони
назначайте тому что есть.
подсказка body или что у вас там ближе постоянное.
Ответить с цитированием
  #6 (permalink)  
Старый 16.11.2015, 22:36
Аватар для spo
spo spo вне форума
Профессор
Отправить личное сообщение для spo Посмотреть профиль Найти все сообщения от spo
 
Регистрация: 11.05.2011
Сообщений: 213

Сообщение от рони Посмотреть сообщение
spo,
потому что элемента .hello div.btn-2 ещё нет, а раз нет то и клик не назначить, назначайте тому что есть.
Сообщение от рони Посмотреть сообщение
то и значит что нет
подсказка body или что у вас там ближе постоянное.
А можете в двух словах объяснить? Потому что после клика на btn header получает класс .hello. Соответственно к btn-2 можно обратиться по .hello .btn-2
Ответить с цитированием
  #7 (permalink)  
Старый 16.11.2015, 22:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от spo
после клика на btn
есть но вы же назначаите когда этого класса нет!!!
значит и элемента .hello div.btn-2 нет!!!
Ответить с цитированием
  #8 (permalink)  
Старый 16.11.2015, 22:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

spo,
строку 18 надо исправить, как я подсказал выше ... если трудно перечитайте документацию на on и про делегирование
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
$('div.btn').click(function () {
	$('header').addClass('hello');
});
alert($('.hello div.btn-2').length)
$('.hello div.btn-2').on('click', function () {
	$('header').removeClass('hello');
});
});


  </script>
</head>

<body>
<header>
    <div class="btn">btn</div>
    <div class="btn-2">btn-2</div>
</header>
</body>

</html>
Ответить с цитированием
  #9 (permalink)  
Старый 16.11.2015, 22:44
Аватар для Barbos
Новичок на форуме
Отправить личное сообщение для Barbos Посмотреть профиль Найти все сообщения от Barbos
 
Регистрация: 16.11.2015
Сообщений: 7

$('header').on('click', '.btn-2', function () {
$('header').removeClass('hello');
});

Последний раз редактировалось Barbos, 16.11.2015 в 22:46.
Ответить с цитированием
  #10 (permalink)  
Старый 16.11.2015, 22:44
Аватар для spo
spo spo вне форума
Профессор
Отправить личное сообщение для spo Посмотреть профиль Найти все сообщения от spo
 
Регистрация: 11.05.2011
Сообщений: 213

Сообщение от рони Посмотреть сообщение
есть но вы же назначаите когда этого класса нет!!!
значит и элемента .hello div.btn-2 нет!!!
Большое спасибо. Сработало вот так:
$('body').on('click', '.hello div.btn-2', function () {...});
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Событие click со 2-го раза срабатывает AlexK jQuery 1 28.12.2014 21:26
Событие click срабатывает только при повторном нажатии (через ON) loko jQuery 8 16.01.2014 10:35
Событие click Гробовщик jQuery 1 31.07.2013 07:28
click событие не реагирует на вновь добавленный элемент vladimircape Events/DOM/Window 2 23.08.2012 00:05
Событие на динамически созданные элементы списка Arigato Events/DOM/Window 7 12.12.2011 09:28