jQuery - 在悬停另一个元素时显示一个元素

Posted

技术标签:

【中文标题】jQuery - 在悬停另一个元素时显示一个元素【英文标题】:jQuery - Display an element on hover of another 【发布时间】:2013-06-30 12:03:06 【问题描述】:

如果需要显示的元素是悬停的子元素,这可以在 CSS 中轻松完成,但事实并非如此;它位于文档的不同部分。

我试图在将鼠标悬停在“[+]”元素上时显示菜单。

直播:http://blnr.org/testing

Jfiddle:http://jsfiddle.net/bUqKq/5/

jQuery:

$(document).ready(function()
    $("header[role='masthead'] #container #left nav#static span").hover(
        function()$("header[role='masthead'] nav#active").show();,
    );
);

【问题讨论】:

他想知道当鼠标悬停在 [+] 上时如何显示菜单 如何在将鼠标悬停在文档不同部分的元素上时显示特定元素 我发布的jQuery代码没有做任何事情。 您的代码中存在语法错误,并且您尚未选择/加载 jQuery 库。此外,由于 ID 是唯一的,您不必编写如此长/效率低的选择器 jsfiddle.net/fRQN9 谢谢! jQuery 中是否有一个持续时间函数,允许菜单在悬停后显示特定的秒数以允许用户进入菜单? 【参考方案1】:

您可以通过仅显示您感兴趣的 id 来大大简化此操作。不需要您使用的其余选择器,因为 ID 必须是唯一的。请注意,我还提供了悬停和悬停功能,因为我假设您想在悬停条件结束后隐藏元素。

    $(document).ready(function()
        $("#static span").hover(
            function()
                $("#active").show();
            ,
            function()
                $("#active").hide();
            
        );
    );

或者,您也可以像这样使用 toggle() 单独关闭:

    $(document).ready(function()
        $("#static span").hover(
            function()
                $("#active").toggle();
            
        );
    );

【讨论】:

比绑定 mouseover 和 mouseout 好多了。【参考方案2】:

这是一个简单的示例,您将鼠标悬停在一个元素上,然后更改了一个完全不同的元素,

http://jsfiddle.net/bUqKq/6/

<div id="one">hover here</div>
<div id="two">hover here2</div>

 

$("#one").on("mouseover",function()
    $("#two").css(
        color:"red"
    )
);

$("#one").on("mouseout",function()
    $("#two").css(
        color:"black"
    )
);

$("#two").on("mouseover",function()
    $("#one").css(
        color:"red"
    )
);


$("#two").on("mouseout",function()
    $("#one").css(
        color:"black"
    )
);

【讨论】:

以上是关于jQuery - 在悬停另一个元素时显示一个元素的主要内容,如果未能解决你的问题,请参考以下文章

jQuery悬停依赖于两个元素

使用 jQuery 在可见时显示元素

聚合物2 - 单击另一个时显示一个元素

使用innerHTML在悬停时显示图像图例(不是工具提示)?

jQuery:悬停时显示和隐藏子div

在悬停时显示一个 DIV,但在另一个悬停的 DIV 内。使用 CSS