Я ищу способ переключить класс, основанный на том, что нажал. Скажем, например, у меня есть следующее:
<div id="element_1"> <!-- notice unique id attached to the end -->
<button>My Button</button>
<div class="hidden_wrapper">
<span>Something</span>
<span>Something else</span>
</div>
</div>
Насколько я понимаю, я могу сделать что-то подобное, чтобы вызвать этот уникальный идентификатор (непроверенный):
$(document).on("click", "[id^=element] button", function() { $('[id^=element] hidden_wrapper').toggleClass('some_class'); });
Я хотел бы переключить этот класс под этим уникальным идентификатором (который фактически удалит класс), если что-либо вне моего #element_1.hidden_wrapper
Может ли кто-то пролить свет здесь?
Настройте обработчик кликов для всего документа. В этом обработчике переключите класс на все элементы, кроме целевого. Вот быстрая и грязная версия; возможны более элегантные подходы.
$("html").on("click", function() {
$(".hidden_wrapper").toggleClass("some_class");
$(this).next().toggleClass("some_class");
})
Это неэлегантно, потому что
Обе проблемы легко исправлены с еще большим количеством кода.