繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM