У меня есть мобильное меню, которое я сейчас создаю, и у меня возникла проблема с on('click')
событиями. Всякий раз, когда я пытаюсь изменить размер браузера, event
срабатывает несколько раз. При первой загрузке сценарий и событие работают нормально, но когда я начинаю изменять размер браузера, событие запускается несколько раз.
Ниже приведен пример кода, над которым я работаю. Есть ли способ, когда он срабатывает только один раз после изменения размера. Я пробовал временное решение, но оно, похоже, не вступило в силу.
(function($){
'use strict';
var mobileMenu = {
init : function() {
$('.region-primary-menu').addClass('primary-mobile-menu');
$('.primary-mobile-menu .menu.-primary > .menu-item').addClass('mobile-menu-item');
$('.primary-mobile-menu .menu.-primary > .mobile-menu-item').on('click', function() {
$(this).toggleClass('active');
console.log('click');
})
},
clear : function() {
$('.primary-mobile-menu, .mobile-menu-item').removeClass('primary-mobile-menu mobile-menu-item');
}
}
$(document).ready(function() {
if ($(window).width() < 1180) {
mobileMenu.init();
}
else {
mobileMenu.clear();
}
});
$(window).on('resize', function(e) {
var resizeTimer;
clearTimeout(resizeTimer);
var resizeTimer = setTimeout(function() {
if ($(window).width() < 1180) {
mobileMenu.init();
}
else {
mobileMenu.clear();
}
}, 100)
});
})(jQuery)