[英]JQuery hide()/show() working on FF/IE but not Chrome
[英]jQuery hide only working on Chrome Mac and IE, not Chrome PC or FF
我编写了一个小函数,用于在使用 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
确定你的目标是什么。
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 元素,这些元素是“真实的”,因此 if body 将是执行,显示下拉列表。
但是,因为它要么显示它是隐藏的,要么显示它什么都不做,所以该函数本质上与完全省略 if 语句没有什么不同。 你打算让它切换吗? 或者也许在悬停时显示但之后隐藏?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.