我正在隐藏文档准备好的控制面板(myNestContainer
)。我有一个名为navMyNest
的按钮,当mouseenter
出现时,会显示myNestContainer
。这很好用。
问题是我希望用户能够探索控制面板,但是如果myNestContainer
中有嵌套的DIV容器,则只要输入一个,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();
});
答案 0 :(得分:5)
如果鼠标移动到嵌套元素,请使用event.relatedTarget
保持父元素可见。
$('#myNestContainer').mouseout(function(e)
{
var evt = e || window.event;
if (evt.relatedTarget != document.getElementById('navMyNest'))
{
$("#myNestContainer").hide();
}
});
答案 1 :(得分:0)
你可以使用jquery悬停功能来克服这个问题......
它基本上解决了您目前面临的问题。使用以下代码
$("div#myNestContainer").hover(
function () {
$("div#myNestContainer").show();
},
function () {
$("div#myNestContainer").hide();
}
);
答案 2 :(得分:0)
我不得不求助于许多丑陋的黑客才能让这类事情发挥作用。它也是特定于浏览器的黑客攻击。就我而言,我的嵌套元素中有iframe元素。
我不得不使用延迟/超时,获取鼠标的(x,y)位置,并响应mousemove事件。
基本上,你必须定期检查,直到鼠标在边界区域之外,然后删除元素。
我使用了淡出效果去除元素,使延迟时间更加难以察觉。
通过在右上角悬停Facebook“f”图标来查看操作:http://www2.highpoint.edu/