Я создал код, чтобы показать/скрыть несколько элементов <div>
при нажатии на текст. Когда вы нажимаете на текст вверху, он показывает связанный <div>
ниже и скрывает остальные.Показать/скрыть div на каждом клике - как оптимизировать код?
Как я могу оптимизировать это с меньшим количеством строк кода?
//-- flag section
$('.contact-div #uk').click(function() {
$('.contact-div .china').hide();
$('.contact-div .uk').show();
$('.contact-div .india').hide();
$('.contact-div .malta').hide();
//-- flag images
$('#uk').addClass('scaleimg');
$('#china').removeClass('scaleimg');
$('#india').removeClass('scaleimg');
$('#malta').removeClass('scaleimg');
});
$('.contact-div #china').click(function() {
$('.contact-div .china').show();
$('.contact-div .uk').hide();
$('.contact-div .india').hide();
$('.contact-div .malta').hide();
//-- flag images
$('#uk').removeClass('scaleimg');
$('#china').addClass('scaleimg');
$('#india').removeClass('scaleimg');
$('#malta').removeClass('scaleimg');
});
$('.contact-div #india').click(function() {
$('.contact-div .china').hide();
$('.contact-div .uk').hide();
$('.contact-div .india').show();
$('.contact-div .malta').hide();
//-- flag images
$('#uk').removeClass('scaleimg');
$('#china').removeClass('scaleimg');
$('#india').addClass('scaleimg');
$('#malta').removeClass('scaleimg');
});
$('.contact-div #malta').click(function() {
$('.contact-div .china').hide();
$('.contact-div .uk').hide();
$('.contact-div .india').hide();
$('.contact-div .malta').show();
//-- flag images
$('#uk').removeClass('scaleimg');
$('#china').removeClass('scaleimg');
$('#india').removeClass('scaleimg');
$('#malta').addClass('scaleimg');
});
.contact-div {
float: left;
margin: 16px 0 0;
padding: 0;
}
.contact-div .flag {
margin: 0 0 10px;
}
.contact-div .flag span {
margin-left: 5px;
}
.cont-address {
margin-left: 23px;
}
.cont-address ul li {
line-height: 24px;
color: #000000;
margin-bottom: 15px;
}
.cont-address ul li i:before {
margin: 15px 0 0 -20px;
font-size: 20px;
}
.china,
.india,
.malta {
display: none;
}
.scaleimg img {
-webkit-transform: scale(1.19);
-moz-transform: scale(1.19);
-o-transform: scale(1.19);
transform: scale(1.19);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="contact-div">
<div class="flag">
<span id="uk" class="scaleimg">UK</span>
<span id="china">China</span>
<span id="india">India</span>
<span id="malta">Malta</span>
</div>
<div class="cont-address">
<ul class="uk">
<li><i class="fa fa-map-marker"></i> UK,
<br>Address of UK
</li>
</ul>
<ul class="china">
<li><i class="fa fa-map-marker"></i> China,
<br>Address of China
</li>
</ul>
<ul class="india">
<li><i class="fa fa-map-marker"></i> India
<br>Address of India</li>
</ul>
<ul class="malta">
<li><i class="fa fa-map-marker"></i> Malta,
<br>Address of Malta</li>
</ul>
</div>
</div>
Посмотреть на JSFiddle
Пожалуйста, ваш код (Eventhough он доступен для просмотра в jsfiddle) – Gar
https://jsfiddle.net/x45gqmmu/16/ проверить это –
@HassanALi это все еще не очень хорошо. Взгляните на другие ответы здесь. ;) – eisbehr