RailsプロジェクトをZurbFoundation 5をテストするように切り替えたところ、トグルトップバーメニューが機能しなくなりました。
ビューポートが小さい場合、トップバーのメニュー項目が消え、以前と同じようにメニューアイコンが表示されますが、メニューアイコンをクリックしても何も起こりません。
トップバーメニューを表示するための次のコードがあります。
<nav class="top-bar">
<ul class="title-area">
<li class="name"></li>
<li class="toggle-topbar menu-icon">
<a>{href: "#"}
<span>Menú</span></a>
</li>
</ul>
<section class="top-bar-section">
<ul class="left">
<li>
<a class="i fi-home">{href: "/ui/home"}
Inicio</a></li>
<li>
<a>{href: "/ui/wine_reviews"} Críticas de Vinos</a></li>
<li>
<a>{href: "/ui/wine_tastings"} Catas y Maridajes</a></li>
<li>
<a>{href: "/ui/blogs"} Noticias</a></li>
</ul>
<ul class="right">
<li>
<a>{href: "#"}
<i class="fi-lock"></i>
Club TastaVi</a></li>
</ul>
</section>
</nav>
これは私のグリッドに含まれているトップバーメニューです。
問題はFoundation.topbar.jsファイルにあるようです。コードの次のセクション
breakpoint : function () {
return matchMedia(Foundation.media_queries['medium']).matches;
}
に変更する必要があります
breakpoint : function () {
return !matchMedia(Foundation.media_queries['topbar']).matches;
}
トップバーでも同じ問題がありました。 zurbsコードを私のものと比較した後、私は違いに気づきました。
<nav class="top-bar" data-topbar>
データトップバーがありませんでした。その鉱山のトップバーを追加した後、正しく動作し始めました。
参考までに、トップバーにはスクロールを中断する別のバグがあります。 foudation.topbar.jsの38行目を次のように変更する必要があります。
self.settings.stick_topbar = topbar;
に
self.settings.sticky_topbar = topbar;
これは5.0.3リリースで修正されましたが、昨夜の時点で、FoundationWebサイトは引き続き5.0.2を提供していました。
これがあなたがそれを機能させるために必要な最小限のものです...私は$(document).foundation();
..を欠いていました.
<html>
<head>
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/foundation/5.4.7/css/foundation.min.css">
</head>
<body>
<nav class="top-bar" data-topbar="" data-options="is_hover: false" role="navigation">
<ul class="title-area">
<li class="name">
<h1><a href="#">Mobile Parent Links</a></h1>
</li>
<li class="toggle-topbar menu-icon"><a href=""><span>Menu</span></a></li>
</ul>
<section class="top-bar-section" style="left: 0%;">
<ul class="left">
<li class="has-dropdown not-click"><a href="http://foundation.zurb.com/docs/components/topbar.html">Item 1</a>
<ul class="dropdown">
<li class="title back js-generated"><h5><a href="javascript:void(0)">Back</a></h5></li>
<li class="parent-link show-for-small">
<a class="parent-link js-generated" href="http://foundation.zurb.com/docs/components/topbar.html">Item 1</a></li>
<script src='//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script>
<script src='//cdnjs.cloudflare.com/ajax/libs/foundation/5.4.7/js/foundation/foundation.min.js'></script>
<script src='//cdnjs.cloudflare.com/ajax/libs/foundation/5.4.7/js/foundation/foundation.topbar.min.js'></script>
<script>
$(document).ready(function() {
$(document).foundation();
});
</script>
</body>
</html>
私は昨日の夕方からその問題を経験し、そのようなスレッドをすべて調べましたが、実際に役立つトリックはありませんでした。最後に、問題の解決に役立った手順は次のとおりです。
私はこのように私のページにファイルを含めています:
_<link rel="stylesheet" href="/css/foundation/foundation.css"/>
_
_<link rel="stylesheet" href="/css/foundation/app.css"/>
_
_<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
_
_<script src="/js/jquery-1.11.2.min.js"></script>
_
_<script src="/js/foundation/foundation.js"></script>
_
_<script src="/js/foundation/foundation.topbar.js"></script>
_
以下のように、jsではなくjqueryでFoundation関数を呼び出しました。
_<script>
_$(document).ready(function() {
$(document).foundation();
_});
_
_</script>
_
Foundation5.1.1でも同様の問題が発生しました。上記の提案された修正はどれも私には適用できませんでした(私はすでにdata-topbar
属性を持っていて、breakpoint
関数はこのリリースのFoundationですでに更新されています)。 MacOS上のFirefoxで開発中のコードをテストしています。私のJavascriptインクルードは本文の最後にあります。
私の場合、Zurbをバージョン5.2.1にアップグレードすることで問題が修正されました。
私は以前に同じ問題を抱えていました。私にとっては、topbar.jsを本体の内部とfoundation.jsの下に含めると機能します。
だから、代わりに
<head>
<script src="../js/foundation.js"></script>
<script src="../js/foundation/foundation.topbar.js"></script>
....
</head>
このようにtopbar.jsを本体の中に入れてみてください
<head>
<script src="../js/foundation.js"></script>
....
</head>
<body>
<script src="../js/foundation/foundation.topbar.js"></script>
....
</body>