#javascript #jquery #hidden #visible
#javascript #jquery #скрытый #видимый
Вопрос:
Я пытаюсь применить класс к моей кнопке, чтобы при отображении переключаемого div кнопка была желтой. У меня это работает нормально, но когда я нажимаю на 2-ю кнопку (вместо того, чтобы снова переключать ту же кнопку), это вызывает проблемы.
Я скопировал в свой код jQuery ниже, мои html и css — это просто кнопки и выпадающие элементы. Я новичок в Javascript, поэтому я уверен, что это что-то относительно простое, чего мне не хватает. Какая-нибудь помощь?
Вот gif-изображение проблемы — https://gph.is/g/EGneVln
jQuery(document).ready(function($){
$(".icon1").click(function(){ // Slide down contact form //
$("#cf-block").slideToggle(500,"linear");
$("#nwl-block").not("#cf-block").hide();
$(".icon1").removeClass('active'); // Highlight contact icon //
if ($("#cf-block").is (':visible')) {
$('.icon1').addClass('active');
}
});
$(".icon2").click(function(){ // Slide down contact form //
$("#nwl-block").slideToggle(500,"linear");
$("#cf-block").not("#nwl-block").hide();
$(".icon2").removeClass('active'); // Highlight contact icon //
if ($("#nwl-block").is (':visible')) {
$('.icon2').addClass('active');
}
});
});
<div id="connectblock" class="ct-div-block">
<h1 id="headline-523-16" class="ct-headline lrg-font">Get connected</h1>
<div id="connecticons" class="ct-div-block">
<div id="contacticon" class="ct-div-block">
<svg class="icon1" xmlns="http://www.w3.org/2000/svg"
viewBox="XXXX"/></svg>
</div>
<div id="newslettericon" class="ct-div-block">
<svg class="icon2" xmlns="http://www.w3.org/2000/svg"
viewBox="XXXX"/></svg>
</div>
<div id="instagramicon" class="ct-div-block">
<a href="https://www.instagram.com/hausseuk/" target="_blank">
<svg class="icon2" xmlns="http://www.w3.org/2000/svg"
viewBox="XXXX"/></svg>
</a>
</div>
</div>
</div>
.icon1{
width:150px;
height:150px;
stroke:#000;
}
.icon2{
width:150px;
height:150px;
stroke:#000;
}
.active{
stroke:#FFD66E;
}
Комментарии:
1. 1) измените
activeN
класс на один общийactive
класс, который работает со всеми значками. 2) Поместите общий класс для всех самих значков и вызовитеremoveClass('active')
его, прежде чем добавлять его к выбранному. 3) ВЫСУШИТЕ свой код. Нет необходимости повторять один и тот же блок для каждой панели значков / слайдов. Если вам нужен пример этого, пожалуйста, добавьте все соответствующие HTML и CSS к вопросу.2. Я следил за этим, но я думаю, что совершаю ошибку, добавляя «активный» класс обратно по щелчку. Я добавляю весь свой код, включая то, что я обновил сейчас .. приветствия!
3. Привет, ты можешь показать правильный html-код?
4. Только что обновлено с ним ^
5. Обновлено снова, должно быть немного чище.