3

Meteor でのマテリアライズ ナビゲーションに奇妙な問題があります。奇妙なことに、ナビゲーションのリンクをクリックすると、サイドバーまたはモーダルが 2 回目のクリックでのみ読み込まれます。したがって、要素を表示するには、リンクを 1 回 (何も起こらないところで) クリックしてから、もう一度クリックする必要があります。その後、任意のクリックで要素が読み込まれます (必要なクリックは 1 回だけです)。

私はこの問題を経験したことがなく、マテリアライズの問題である可能性があると思います。ただし、具体化する前に、皆さんに確認して、JQuery 関数の呼び出しが間違っている可能性があるかどうかを確認したいと思います。コードは次のとおりです。

header.html:

<template name="header">
  <nav>
    {{> sideNav}}
    <div class="nav-wrapper">
      <a href="#" class="brand-logo center"><span class="light"></span>hamok</a>
      <ul id="nav-mobile" class="left">
        <li><a href="#" data-activates="slide-out" class="button-collapse show-on-large"><i class="mdi-navigation-menu"></i></a></li>
        <li><a href="#"><i class="mdi-action-search left"></i>Search</a></li>
      </ul>
      <ul id="nav-mobile" class="right">
        {{#if currentUser}}
          <li><a id="logout">Sign out</a></li>
        {{else}}
        <li><a class="modal-trigger-login" href="#loginModal">Account<i class="left mdi-action-account-circle"></i></a></li>
        {{/if}}
      </ul>
    </div>
  </nav>

  {{> loginModal}}
</template>

<template name="loginModal">
  <div id="loginModal" class="modal">
    <div class="modal-content">
      {{> atForm}}
    </div>
  </div>
</template>

<template name="sideNav">
  <ul id="slide-out" class="side-nav">
    <li><a href="#!">First Sidebar Link</a></li>
    <li><a href="#!">Second Sidebar Link</a></li>
  </ul>
</template>

header.js

Template['header'].helpers({

});

Template['header'].events({
  'click .modal-trigger-login': function() {
    $('.modal-trigger-login').leanModal();
  },

  'click #logout': function() {
    Meteor.logout();
  },

  'click .button-collapse': function() {
    $(document).ready(function(){
      $(".button-collapse").sideNav();
    });
  }
});

ご覧いただきありがとうございます。

4

1 に答える 1