jQuery隐藏仅适用于Chrome Mac和IE,而不是Chrome PC或FF

时间:2016-05-09 14:57:24

标签: javascript jquery css google-chrome firefox

我编写了一个小功能,用于隐藏使用FoundationPress作为模板的wordpress网站上的子菜单,不幸的是我发现它无法在Chrome PC或FF上运行。我最初使用切换来隐藏它,但切换到.hide(),然后甚至将其设置为.css("显示","无")但问题仍然存在于PC端。

fc

用户应该导航到网站的某个部分,然后使用顶部的菜单跳转到每个部分。所以这里:http://development.maclynutility.com/littlefriends/childrens-services/ 如果您使用菜单在当前部分(儿童服务)的任何位置导航,则菜单在使用Chrome或FF的PC上保持活动状态,但隐藏在Mac或IE上。我需要它来隐藏所有的时间和工作,就像在IE或Mac Chrome上一样。谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

它无法正常工作,因为它无法找到

li.active ul.sub-menu.dropdown

确保你的目标。

答案 1 :(得分:0)

if($("li.active ul.sub-menu.dropdown").css("display", "none")){
  $("li.active ul.sub-menu.dropdown").css("display", "block");
}

应该是:

if($("li.active ul.sub-menu.dropdown").css("display") === "none"){
  $("li.active ul.sub-menu.dropdown").css("display", "block");
}

因为$("li.active ul.sub-menu.dropdown").css("display", "none")将始终隐藏并返回选定的dom元素,这些元素是" truthy",因此if主体将被执行,显示下拉列表。

但是,既然它会隐藏显示,或者如果显示它就什么也不做,那么该功能基本上与完全省略if语句没有什么不同。你有意打算切换吗?或者也许是在徘徊时显示但后来隐藏?