Ошибка в jQuery window.resize ()?

0

Я пытаюсь создать веб-сайт, поэтому всякий раз, когда вы нажимаете на кнопку с id="slider-toggle" открывается меню. Он отлично работает при загрузке страницы в первый раз.

Проблема возникает при изменении размера окна. Всякий раз, когда вы изменяете размер окна и затем нажимаете кнопку, консольный журнал говорит "откройте его, закройте". тогда как он должен только сказать "открыть его" или "закрыть".

Затем всякий раз, когда вы продолжаете изменять размер окна, а затем нажимаете на кнопку, он имеет что-то вроде "откройте его, закройте его, откройте, закройте, откройте, закройте и так далее".

Насколько мне известно, что-то не так с jQuery resize().

Или может кто-нибудь увидеть какой-либо недостаток в моем коде?

var container = $('#container');
var menu = $('#desktop-menu');

function myswipemenu(){

  //toggle function
  function toggleSwipeMenu(){
    if(container.hasClass("open")){
      console.log("close it");
    }
    else {
      console.log("open it");
    }
  }

  $('#slider-toggle').click(toggleSwipeMenu);

}
function callback () {
  windowsize = $(window).width();

    menu.removeClass('slidermenu');
    container.removeClass('thecontent');
    menu.insertAfter($(".header-main"));


  if (windowsize < 1160) {

    menu.addClass('slidermenu');
    container.addClass('thecontent');

    myswipemenu();
  }
  else {

    menu.removeClass('slidermenu');
    container.removeClass('thecontent');
  }
}

$(window).ready(callback);
$(window).on('resize', callback);
  • 0
    где вы добавляете / удаляете "открытый" класс из контейнера?
Теги:
responsive-design

1 ответ

1

Вы вызываете функцию ниже в событии изменения размера.

myswipemenu()

И события снова и снова становятся связующим звеном.

Удалите вызов этой функции в событии изменения размера, которое не будет вызвано снова и снова. Если вы изменяете размер при перетаскивании окна, эта функция будет вызываться несколько раз и перегрузит браузер.

  • 0
    Если это правильный ответ, пометьте его как ответившего, поскольку вопрос будет удален из очереди без ответа.
  • 0
    Ах, хорошо, как мне вызвать эту функцию всякий раз, когда размер окна изменяется? Есть ли альтернатива Jquery resize ()?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню