我正在尝试在jquery中创建一个菜单面板,除了一个问题外,它们都是完整的。当我将鼠标悬停在链接上时,它会显示一个黑色面板,我希望只有当鼠标不在黑色面板区域时才能隐藏该面板。目前,即使我在黑盒子里,它也会淡出。JQuery MouseOut事件问题
下面是脚本,您可以通过点击预览链接有看到的预览,并有编辑过:
这应该是一个非常简单有经验的JQuery的编码器,我没有玩过这么多,所以无法弄清楚。
感谢
我正在尝试在jquery中创建一个菜单面板,除了一个问题外,它们都是完整的。当我将鼠标悬停在链接上时,它会显示一个黑色面板,我希望只有当鼠标不在黑色面板区域时才能隐藏该面板。目前,即使我在黑盒子里,它也会淡出。JQuery MouseOut事件问题
下面是脚本,您可以通过点击预览链接有看到的预览,并有编辑过:
这应该是一个非常简单有经验的JQuery的编码器,我没有玩过这么多,所以无法弄清楚。
感谢
当您只提供一个悬停参数时,它将其用于鼠标输入和鼠标离开。
您应该使用悬停而不是鼠标事件。
第一次调用悬停时,提供一个空白选项作为第二个参数。
第二次调用悬停时,提供空白函数作为第一个参数。
这可以防止对同一功能进行多次调用。
我会说使用mouseenter和mouseleave事件来防止额外的参数,但由于某种原因,jsbin并不认为它是一个函数。
你应该移动的div#panel_1,#panel_2,UL#菜单里 内部#panel_3,当你在DIV你还是在里,如果你申请悬停里,而不是一个。 其他方法是存储块的可见性并对其进行管理。
http://jsbin.com/adofe/3/edit 使用悬停似乎工作 – 2010-03-05 14:17:54
还是同样的问题:(你改变什么了 – Sarfraz 2010-03-05 14:22:17
我检查代码的http:// jsbin。 com/adofe/8 /编辑使用每个和右悬停方法(2功能) – 2010-03-18 14:51:53
首先,为什么不把这两个放在CSS中作为“起点”?
$('div[id*="panel"]').hide();
// make the panels absolute positioned
$('div[id*="panel"]').css('position', 'absolute');
其次,如果你只是将鼠标移到东西反反复复,你会得到一个:在line
堆栈溢出25个
网页错误的详细信息
用户代理:Mozilla的/ 4.0(兼容; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; MDDR; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2; OfficeLiveConnector.1.3; OfficeLivePatch.0。0) 时间戳:星期五,2010 3月5日14时21分26秒UTC
消息: '的GUID' 为空或不是对象 行:25 字符:10976 代码:0 URI:http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js
消息: '未定义' 是空或不是对象 行:21 字符:560 代码:0 URI:http://jsbin.com/js/render/edit.js
消息: '未定义' 是空或不是对象 线:21 字符:560 代码:0 URI:http://jsbin.com/js/render/edit.js
消息: '未定义' 是空或不是对象 行:21 字符:560 代码:0 URI:http://jsbin.com/js/render/edit.js
第三,你有
var link_rel = null;
然后在后面的代码分配相同名称的新变量:
var link_rel = $(this).attr('rel');
也
var pos = $(this).offset();
它获取每个悬停发生时间重新分配看到。
这与元素的嵌套(以及面板在链接上的位置)似乎导致了.hover事件管理的问题。
jQuery 1.2。6没有'mouseenter'和'mouseleave'的快捷函数,但你仍然可以像这样使用它们:'$('selector')。bind('mouseenter',function(){})''而不是使用悬停和空功能。 – 2010-03-05 16:34:42
@bmac:很好,谢谢你的帮助,而不是有用的信息:) – Sarfraz 2010-03-05 16:50:47