Меню и постраничный вывод views

Главные вкладки

Аватар пользователя safin safin 4 марта 2020 в 18:11

Проблема, на пустом месте.

Выставил во views постраничный вывод:

И при нажатии кнопки "следующая страница" в мобильной версии увеличивается количество прорисовки меню

почему-то появляется в коде лишние

В чем может быть проблема?

Лучший ответ

Аватар пользователя charOFF charOFF 5 марта 2020 в 18:41

Я бы попробовал добавить контекст и once, т.к. behaviors могут запускаться несколько раз в процессе загрузки страницы. Т.е. как-то так:

(function ($) {
  Drupal.behaviors.kanji = {
    attach: function (context, settings) {
      $('#primaryMenu', context).once('add-menu-icon').each(function(){
        $(this).prepend('<div id="menu-icon">Menu</div>');
        $("#menu-icon").click(function () {
          $("#primaryMenu").toggleClass("active");
        });
      });
    }
  };  
}(jQuery));

Комментарии

Аватар пользователя ivnish ivnish 4 марта 2020 в 18:40

А как у вас реализована мобильная версия? А вообще такое ощущение, что у вас скрипт мобильного меню чудит. Проверьте его, не вызывается ли он несколько раз

Аватар пользователя safin safin 4 марта 2020 в 22:43

Нашел в теме файл main.js

Меня немного смущает вот эта строчка:
 $('#primaryMenu').prepend('<div id="menu-icon">Menu</div>');

Полный текст фала:

(function ($) {
  Drupal.behaviors.kanji = {
    attach: function (context, settings) {
      $('#primaryMenu').prepend('<div id="menu-icon">Menu</div>');

      $("#menu-icon").click(function() {
        $("#primaryMenu").toggleClass("active");
      });
    }
  };  
}(jQuery));

Аватар пользователя safin safin 4 марта 2020 в 23:07

Уже понимаю, но еще бы понять как. Java script для меня как китайский, хотя нет в китайском я знаю, как выглядит слова ссора, как два иероглифа обозначающие женщину.

Аватар пользователя charOFF charOFF 5 марта 2020 в 18:41

Я бы попробовал добавить контекст и once, т.к. behaviors могут запускаться несколько раз в процессе загрузки страницы. Т.е. как-то так:

(function ($) {
  Drupal.behaviors.kanji = {
    attach: function (context, settings) {
      $('#primaryMenu', context).once('add-menu-icon').each(function(){
        $(this).prepend('<div id="menu-icon">Menu</div>');
        $("#menu-icon").click(function () {
          $("#primaryMenu").toggleClass("active");
        });
      });
    }
  };  
}(jQuery));