Не находит блок по селектору
Суть проблемы вот в чем, к примеру имеем два блока с классом block, один из них еще и с классом green
<div class="block">Блок 1</div> <div class="block green">Блок 2</div> Пишу код для добавления класса green блоку без данного класса, примерно так: $('.block').not('.green').click(function(){ $(this).addClass('green'); }) И код, чтобы убрать класс green: $('.block.green').click(function(){ $(this).removeClass('green'); }) С первым нажатием по блоку все работает отлично, но если нажимаю повторно на блок, что бы у блока, которому только что добавил класс green убрать данный класс, ничего не происходит. Не отрабатывает селектор. Подскажите как разобраться в данной ситуации? |
Цитата:
а ставят клик на элемент выше который всегда есть - читайте документацию по on |
oklidog,
или $('.block').click(function(){ $(this).toggleClass('green'); }) |
Изучу on поподробнее, спасибо за совет. Решил проблему проверкой класса через if is.
toogle не подходит, там еще пара манипуляций следует за сменой класса. Скажите, получается, что обращаться можно только к элементам, которые есть на странице на момент загрузки? То есть если я создам элемент с помощью js, то не смогу потом к нему обратиться? |
Цитата:
2 решение создали элемент после создания назначили что нужно. |
oklidog,
$('html').on('click','.block.green',function(){ $(this).removeClass('green'); }) только вместо html -- желательно ближайший постоянный parent |
Часовой пояс GMT +3, время: 04:49. |