Возможно ли упростить/оптимизировать скрипт?
Приветствую!
Есть html-код и скрипт. Со стилями сложнее, поэтому их нет (sorry).
<ul class="top-models__list-pros">
<li class="pros">
<div class="icon icon--pros"><span class="sign"></span></div>
<div class="text" style="display: none;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus ullamcorper, velit vitae lacinia tristique, diam neque tincidunt sapien</div>
</li>
<li class="cons cons--active">
<div class="icon icon--cons"><span class="sign"></span></div>
<div class="text" style="display: none;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus ullamcorper, velit vitae lacinia tristique</div>
</li>
<li class="recomend">
<div class="icon icon--recomend icon--active"><span class="sign"></span></div>
<div class="text" style="display: inline-block;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus ullamcorper, velit vitae lacinia tristique, diam neque tincidunt sapien</div>
</li>
</ul>
Скрипт работает, переключает вкладки. Вопрос: возможно ли упростить скрипт, избавиться от вложенности?
$( document ).ready( () => {
$('ul.top-models__list-pros > li').each(function() {
$(this).find('div.icon').each(function() {
$(this).on('click', function() {
$(this).addClass('icon--active')
.closest('li')
.siblings()
.find('.icon')
.removeClass('icon--active');
});
});
});
});
Заранее, спасибо за идеи! |
$(() => {
$('ul.top-models__list-pros > li div.icon').click(function() {
$(this).addClass('icon--active')
.closest('li')
.siblings()
.find('.icon--active')
.removeClass('icon--active');
});
});
|
phoenix200689,
$(() => {
let temp = $('ul.top-models__list-pros .icon--active');
$('ul.top-models__list-pros').on('click', '.icon', function(){
temp.removeClass('icon--active');
temp = $(this).addClass('icon--active');
});
});
|
Nexus,
рони, Гениально, спасибо |
| Часовой пояс GMT +3, время: 04:52. |