Вопрос по Jquery
292 повідомлення
#15 років тому
Привет всем.Есть такой код:
$('.words-list li').click(function()
{
$(this).addClass('select-li');
});
$('.select-li').click(function()
{
$(this).removeClass('select-li');
});
Т.е. при клике по элементу li из списка ему присваевается некий класс (просто меняется фон). Далее нужно, что бы после второго клика этот класс убирался. Первая часть кода работает правильно, но вот вторая - никак не хочет. Фаербаг ни на что не ругается, но как я понял, jQuery просто не хочет найти селектор "select-li"..
Может я правда что-то не верно сделал, подскажите, люди добрые

5330 повідомлень
#15 років тому
Она не работает, так как Dom уже построен при загрузке. надо или обновлять (не дай бог так делать) или просто....сделайте обработку для
$('.words-list li'

{
Если класс select-li есть, то $(this).removeClass('select-li'


});
есть вариант еще проще
посилання -тут даже примеры есть, как я понимаю именно для Вас и именно Ваш функционал
292 повідомлення
#15 років тому
ArtPro, да, про toggleclass то и забыл-с..спасибо, попробуюe1it3, в том и дело, что это он видит, а новодобавленный класс - нет. ArtPro прав на счет DOM`а
99 повідомлень
#15 років тому
$('.words-list li').click(function(){
$(this).toggleClass('select-li');
});
эм.. не успел

87 повідомлень
#15 років тому
Код после загрузки DOM назначает обработчики на клик всему что нашёл, тем элементам, которым класс select-li присваивается после загрузки, обработчики назначены не будут. Можно сделать как уже писали выше .toggleClass, ну а если требуются какие то другие действия кроме включения-выключения класса, то использовать .toggle(fn1, fn2).
99 повідомлень
#15 років тому
ArtPro, segoddnja, в jQ с версии 1.3 есть метод live. Добавляет обработчик события для существующих и будущих элементов. чтоб отвязать - die