У меня есть отзывчивый шаблон для электронной коммерции с панелью навигации, которая при изменении размера окна ниже определенной точки разрыва складывается вертикально.Добавить элемент только один раз
В меню, в котором есть дети, добавлен «расширитель». При щелчке это расширяет соответствующее подменю.
Функция:
function breakPointHendle(){
elm.find('li').each(function() {
if($(window).width() <= defaults.breakPoint) {
if ($(this).find('ul').length > 0) {
$(this).addClass("parent");
$(this).append('<i class="expander fa fa-angle-down"></i>');
}
} else {
$(this).removeClass("parent");
$(this).removeClass("active");
$(this).find('.expander').remove();
$(this).find('ul').removeAttr("style");
$(hamburger).removeClass("active");
}
});
$("i.expander").click(function() {
if (!$(this).parent('li').hasClass("active")) {
$(this).parent('li').children('ul').slideDown(defaults.slideDownTime);
$(this).parent('li').addClass("active");
} else {
$(this).parent('li').children('ul').slideUp(defaults.slideUpTime);
$(this).parent('li').removeClass("active");
}
});
};
breakPointHendle();
$(window).resize(breakPointHendle);
Тот факт, что breakPointHendle() является также называется в окне изменения размера приводит неудобство, что при изменении размеров окна от мала (ниже точки разрыва) до меньше (даже больше ниже точки останова), <i class="expander fa fa-angle-down">
является добавлено повторно. Таким образом, мы получаем множество расширителей вместо одного.
Как следует изменить функцию e, чтобы избежать этого?
Спасибо!