Ребят уже битый час бьюсь, что не так со скриптом ? Собственно при разрешении меньше 992px окна браузера, должно отрабатывать событие. По клику добавляется класс. Проблема в том, что событие отрабатывает через раз. То-есть например я делаю resize окна, остановился на 768, событие отработало. Чуть передвинул браузер, все, уже не работает. Еще немного уменьшил окно, опять заработало.
https://codepen.io/brezze/pen/ERONZN
Где ошибка ?
<div class="wrap">
<div class="item"></div>
<div class="item"></div>
</div>
$(window).on('resize', function() {
if ($(window).width() <= 992) {
$('.wrap').click(function(){
$('.item', this).toggleClass('open');
});
}
}).trigger('resize');
Нужно понимать, что при изменении размера, resize
событие исполняется, зачастую, не один раз, а несколько, именно поэтому у вас не получается, когда у вас проходит несколько событий resize
при изменении ширины.
Лучше всего в resize
определять только ширину окна, а остальной функционал вынести. Также проверку на ширину делайте после нажатия, а не перед ним.
let currentWidth = $(window).width();
$(window).on('resize', function() {
currentWidth = $(window).width();
});
$('.wrap').click(function() {
if (currentWidth <= 992) {
$('.item', this).toggleClass('open');
}
});
.item {
height: 300px;
width: 300px;
background-color: blue;
margin: 10px;
}
.wrap {
display: flex;
justify-content: center;
}
.open {
background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrap">
<div class="item"></div>
<div class="item"></div>
</div>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть owl carousel с товарами на сайте, которая почему-то не сразу возвращается к первому слайду, а в конце продолжает листать какие-то пустые слайды
Решил написать бота дл Discord и увидел ошибку SyntaxError: await is only valid in async function
имеются два input'a, один из них дублирует второй, цифры переключаются при нажатии на + и - но также нужна возможность самому записать значение...