【发布时间】:2016-05-09 14:57:24
【问题描述】:
我编写了一个小函数来隐藏使用 FoundationPress 作为模板的 wordpress 网站上的子菜单,不幸的是我发现它在 Chrome PC 或 FF 上不起作用。我最初使用切换来隐藏它,但切换到 .hide() 甚至将其设置为 .css("display","none") 但问题仍然存在于 PC 端。
$(document).ready(function() {
$('.top-bar-section li.active:not(.has-form) a:not(.button)').click(function() {
$("li.active ul.sub-menu.dropdown").hide();
});
$('.top-bar-section ul li').hover(function() {
if($("li.active ul.sub-menu.dropdown").css("display", "none")){
$("li.active ul.sub-menu.dropdown").css("display", "block");
}
});
})
应该发生的情况是用户导航到网站的某个部分,然后使用顶部的菜单跳到每个部分。所以在这里:http://development.maclynutility.com/littlefriends/childrens-services/ 如果您使用菜单在当前部分(儿童服务)中的任何位置导航,则菜单在使用 Chrome 或 FF 的 PC 上保持活动状态,但在 Mac 或 IE 上隐藏。我需要它一直隐藏并像在 IE 或 Mac Chrome 上一样工作。感谢您的帮助。
【问题讨论】:
-
我要检查的第一件事是 $("li.active ul.sub-menu.dropdown") 是否真的找到任何东西
-
看起来问题出在悬停功能上,而不是点击功能中的选择器。当我注释掉第二个悬停功能时,子菜单会正确隐藏,但如果用户返回该功能,我将使用它再次显示菜单。我可以看到,一旦页面加载,显示属性会从没有像它应该的那样切换回阻止,但在 mac 上它保持隐藏状态,并且实际上显示在 pc 上,尽管属性被设置为阻止。 .hover() 在那里使用合适吗?
标签: javascript jquery css google-chrome firefox