Я пытаюсь закрыть один переключатель, когда открываю другое. У меня будет много из них на нескольких страницах, поэтому я бы предпочел не дублировать этот код для каждого.Закрытие jQuery slideToggle + класс переключения при открытии другого
Кроме того, я не могу использовать .next(); или что-то подобное, потому что некоторые из разделов содержимого, которые будут открываться при нажатии, не находятся непосредственно под ссылкой переключения. Вот почему я назначил атрибут rel переменной, чтобы я мог дать уникальную ссылку на каждую ссылку, затем одна кнопка должна открыть один конкретный div независимо от того, где он находится на странице.
Код в скрипке использует hide(); на всех div до его выполнения, но по какой-то причине класс «remove-border» не работает надежно, когда я это делаю. Вы можете увидеть, если вы нажмете один и тот же элемент несколько раз, граница появится и исчезнет. Это должно сделать эффект вкладок, поэтому граница, исчезающая и вновь появляющаяся при щелчке ссылки, необходима. Я использовал toggleClass, потому что граница должна быть добавлена обратно при нажатии другой ссылки.
Подводя итоги: нажмите элемент 1 удаляет нижнюю границу под пунктом 1 и открывает div с классом «toggle-content1». Нажмите его еще раз, и он переключится на закрытую и заменяет границу ИЛИ, если вы нажмете кнопку ITEM2, она заменит границу под ITEM1 и закроет ее, затем откроет ITEM2, удалив границу из раздела ITEM2.
Вот мой JQuery:
jQuery(document).ready(function($){
$(".toggle-button").click(function() {
var rel = $(this).attr('rel');
$(".hh").hide();
$(this).addClass("remove-border");
$(".toggle-content" + rel).slideToggle(50, function() {
});
});
});
Here's my fiddle of what I've got so far. Я даже приближаюсь к этому правильным способом?
Спасибо Арш! Второй вариант почти идеален, однако, если вы снова нажмете на ту же ссылку, содержимое «отскакивает» закрывается, а затем снова открывается. Это из-за использования slideDown() вместо slideToggle()? – danzo
@ danzo да из-за этого. вы хотите, чтобы он закрылся? –
Можно ли нажать на ссылку, чтобы закрыть ее снова? Это было бы великолепно! – danzo