Как присвоить класс по клику на блок, исключая некоторые дочерние элементы?

Добрый день!

Существует на странице некий блок section. Необходимо, чтобы при клике на него (за исключением вложенных ссылок!), для body назначался класс .open и удалялся при повторном клике.

Пишем:
$(document).ready(function(){
	$('section').click(function(){
		$('body').toggleClass('open');
		return false;
	});
});


Все работает, все прекрасно: нажимаем на любое место в секции, и телу документа присваивается нужный нам класс. НО! Но в секции содержатся ссылки. Причем это не непосредственно дочерние элементы, они имеют сложную структуру: section>.wrapper>article>menu>li>a[href=#].

Если бы это были непосредственно дочерние элементы, найти их можно было б с помощью children(), однако для нашего случая существует find(). Например: $('section').find('a') - найдет внутри секции все ссылки, вне зависимости от вложенности элементов.

Вопрос: как для body присвоить определенный класс по клику в любом месте секции за исключением ссылок? То есть ссылки в секции должны работать в обычном режиме - перенаправлять на другие страницы; а обычный текст, пустое пространство, изображение в блоке (по клику) должны определять для body класс. Как я только не изворачивался с :not() и .not() - ничего не получается.

Спасибо!
  • Вопрос задан
  • 3749 просмотров
Пригласить эксперта
Ответы на вопрос 1
Playmore
@Playmore
Опытный разработчик
пробовали без return false?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы