【发布时间】:2016-09-08 10:42:18
【问题描述】:
我的 JS 菜单有一些问题。当页面加载时,菜单效果很好,并且符合预期。单击该选项,然后它会显示菜单项。
但是,一旦我单击其中一个菜单项并导航到另一个页面,菜单就会停止工作!当您单击该图标时,菜单不再出现。页面就在那里。当我尝试在 chrome 中调试时,它不再“命中”代码。
我注意到,如果我刷新该页面,菜单会再次按预期工作:/
我的 JS 代码如下,出现这种问题我缺少什么?
我为此创建了一支笔 - http://codepen.io/alr3id/pen/bwdKxL
function MyMenus(jQuery) {
$(".p-menu-icon").on("click", function(event) {
var e = $(this).next(".p-menu");
e.hasClass("p-menu_open") || $(document).trigger("click"),
$(".p-modal-bg").toggleClass("p-modal-bg_active"),
e.toggleClass("p-menu_open"),
event.stopPropagation()
});
// Removes the menu open class.
$(document).on("click", function(t) {
var e = $(t.target)
, i = 1 === e.closest("p-menu").length;
i || ($(".p-menu.p-menu_open").removeClass("p-menu_open"),
$(".p-modal-bg").removeClass("p-modal-bg_active"))
});
}
// Load
$(document).ready(MyMenus);
下面是菜单的 HTML
<nav class="p">
<div class="p-modal-bg"></div>
<div class="p-property">
<a class="p-property-name" href="/">
Logo Here
</a>
</div>
<div class="p-user">
<a class="p-menu-icon">
<div class="icon icon-navigator-toggle"></div>
</a>
<div class="p-menu p-menu_navigator">
<a class="p-menu-item p-menu-item_dashboard" href="/">Dashboard</a>
<a class="p-menu-item p-menu-item_orders" href="/orders">My orders</a>
<a class="p-menu-item p-menu-item_back-bar" href="/products">Products</a>
</div>
<a class="p-menu-icon p-menu-icon_account">
<div class="p-user-avatar_container">
<img alt="Example user" class="gravatar" src="{image here}">
</div>
</a>
<div class="p-menu p-menu_account">
<div class="p-menu-item_account-details">
<div class="p-user-avatar_container">
<img alt="Example user" class="gravatar" src="https://secure.gravatar.com/avatar/{image here}">
</div>
<div class="p-account-details-name">
Example User
</div>
<div class="p-account-details-email">example@example.com</div>
</div>
<a class="p-menu-item p-menu-item_settings" href="account">Account settings</a>
<a class="p-menu-item p-menu-item_messages" href="#">Messages</a>
<a class="p-menu-item p-menu-item_logout" href="#">Sign out</a>
</div>
</div>
</nav>
【问题讨论】:
-
尝试多解释一下出了什么问题。 “停止工作”对于我们分析问题来说是模糊的。
-
嗨鲁登,我已经更新了帖子。干杯。
-
可能是一个愚蠢的问题,但以防万一 - 脚本也包含在该页面上? :)
-
哈哈,这根本不是一个愚蠢的问题,它很容易被忽略。但是,是的,它在页面上,只是没有击中它。除非它的 HTML 有问题:/
-
我已经为导航菜单添加了 HTML
标签: javascript jquery