Материализовать sideNav из нескольких кнопок

#javascript #jquery #materialize

#javascript #jquery ( jquery ) #материализоваться

Вопрос:

Я использую jQuery-плагин sideNav () от Materialize для переключения открытия и закрытия боковой навигации. Он отлично работает с одной кнопкой.

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

Вот html:

   <a href="#" data-activates="slide-out" class="btn button-collapse">Button One</a>
  <a href="#" data-activates="slide-out" class="btn button-collapse">Button Two</a>
  <a href="#" data-activates="slide-out" class="btn button-collapse">Button Three</a>

  <!-- sideNav -->
  <ul id="slide-out" class="side-nav">
    <li>Hello side nav</li>
  </ul>
 

Шаги для воспроизведения:

  • Нажмите «Первая кнопка» (откроется sideNav)
  • Нажмите «Вторую кнопку» (откроется sideNav)
  • Нажмите «Третью кнопку» (откроется sideNav)
  • Нажмите «Первая кнопка» (ничего)
  • Нажмите «Первая кнопка» (откроется sideNav)
  • Нажмите «Вторая кнопка» (ничего)
  • Нажмите «Вторую кнопку» (откроется sideNav)
  • Нажмите «Третью кнопку» (откроется sideNav)

И jQuery:

 $('.button-collapse').sideNav({ edge: 'right' });
 

Я попытался очистить функцию перед щелчком мыши, обернуть событие внутри ready() и присвоить идентификаторы каждому элементу button и жестко запрограммировать его для события jQuery, но все равно не работает. Любая помощь приветствуется.

Вот в чем дело.

Комментарии:

1. Вы пытаетесь запустить один и тот же sideNav() со всеми этими кнопками? или вы планируете иметь 3 sideNavs? потому что функция sideNav() принимает только один элемент триггера.

2. @SergioAlen Спасибо за ваш комментарий. Я хотел иметь один sideNav, но если он принимает только один триггер элемента, я согласен с наличием 3. Есть представление о том, как это может выглядеть?