Обращение к созданному классу (Jquery)

SEO_87
На сайте с 05.08.2008
Offline
104
1471

Здравствуйте. Суть проблемы - в одной функции добавляем класс, а в другой нужно его удалить и ничего не происходит.


$('.btn').click(function(){
$(this).closest('.block').addClass('active');
$(this).toggleClass('active');
});
$('.btn.active').click(function(){
$(this).closest('.block').removeClass('active');
});

Получается js не видит .btn.active. Как это обойти?

IL
На сайте с 20.04.2007
Offline
435
#1
SEO_87:
.btn.active. Как это обойти?

На момент "навешивания" обработчика .active у .btn нету.

Используйте on


$(".btn").on("click", function(event){
$(this).toggleClass('active');
if ($(this).hasClass('active')) {
$(this).closest('.block').addClass('active');
} else {
$(this).closest('.block').removeClass('active');
}
});
... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
SEO_87
На сайте с 05.08.2008
Offline
104
#2

Помогло, спасибо!

[Удален]
#3

я предпочитаю использовать плагин jquery.livequery

и нет ни каких проблем с несуществующими элементами, классами

к тому же в качестве события можно использовать любую функцию :)

IL
На сайте с 20.04.2007
Offline
435
#4

burunduk, версия jquery какая используется?

Уверен на 99%, что в последних можно обойтись без него "штатными" возможностями JQuery.

[Удален]
#5

ivan-lev, 1.7...

в новых много чего поубивали тот же live (хотя я его и не использовал из-за его ограничений), с data проблемы возникают, а версии 2... вообще со старыми браузерами не дружат

P.S. задача в принципе одна - работа с несуществующим DOM

Ayavryk
На сайте с 11.10.2003
Offline
209
#6
burunduk:
я предпочитаю использовать плагин jquery.livequery

Какой-то очень мутный плагин. Особенно настораживает наличие таймеров. Делегировать обработку событий родителю обычным способом не проще? Вроде в jquery встроенный метод есть.

Тынгыр, мынгыр, комсомол (http://erum.ru). Ехари, ехари, (жалобно) аяврик. /народная тунгусская песня/
[Удален]
#7
Ayavryk:
Делегировать обработку событий родителю обычным способом не проще?

какому, html?

Оптимизайка
На сайте с 11.03.2012
Offline
396
#8
burunduk:
я предпочитаю использовать плагин jquery.livequery
и нет ни каких проблем с несуществующими элементами, классами
к тому же в качестве события можно использовать любую функцию :)

Это Вы зря. Там же все по таймеру происходит, производительность сильно страдает. Код плагина смотрели? Это ужасно :)

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
[Удален]
#9

Оптимизайка, вариантов других пока нет :(, а с производительностью на современных компах проблем нет - пользователь не замечает :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий