2

myNestContainer在准备好文档时隐藏了一个控制面板 ( )。我有一个按钮navMyNest,当mouseenter发生时,显示myNestContainer. 这工作正常。

问题是我希望用户能够浏览控制面板,但是考虑到在 中有嵌套的 DIV 容器myNestContainer,只要输入一个,就会mouseleave生效并关闭控制面板。

mouseenter这比/工作得更好mouseout,但仍然没有我想要的功能。

关于如何覆盖子对象以便在用户查看控制面板时保持打开状态的任何想法?

提前致谢。

$(document).ready(function() {
$("div#myNestContainer").hide();
});

$("div#navMyNest").live("mouseenter", function(event) {
    $("div#myNestContainer").show();
});

$("div#myNestContainer").live("mouseleave", function(event) {
    $("div#myNestContainer").hide();
});
4

3 回答 3

5

用于event.relatedTarget在鼠标移动到嵌套元素时保持父元素可见。

$('#myNestContainer').mouseout(function(e)
{
    var evt = e || window.event;
    if (evt.relatedTarget != document.getElementById('navMyNest'))
    {
        $("#myNestContainer").hide();
    }
});
于 2011-12-07T17:07:36.510 回答
0

你可以使用jquery悬停功能来解决这个问题......

http://api.jquery.com/hover/

它基本上可以解决您当前面临的问题。使用以下代码

 $("div#myNestContainer").hover( 

    function () {
     $("div#myNestContainer").show(); 
    },

    function () { 
    $("div#myNestContainer").hide(); 
    }
);
于 2011-12-07T17:03:38.377 回答
0

我不得不求助于很多丑陋的黑客来让这种事情发挥作用。这也是特定于浏览器的黑客攻击。就我而言,我的嵌套元素中有 iframe 元素。

我不得不使用延迟/超时,获取鼠标的 (x,y) 位置,并响应 mousemove 事件。

基本上,您必须定期检查,直到鼠标超出边界区域,然后删除元素。

我使用淡出效果来移除元素以使延迟时间更加不明显。

将鼠标悬停在右上角的 Facebook 'f' 图标上查看实际效果:http ://www2.highpoint.edu/

于 2011-12-07T17:05:39.733 回答