我最近遇到了一个问题,似乎没有多少在线搜索有助于解决 - 特别是在使用 jQuery hoverIntent 插件时,初始的“hoverIn”函数被正确调用,但“hoverOut”没有被应用。
作为快速背景,我在从无序列表创建的菜单上使用它,在“hoverIn”中使用 jQuery 的 .slideDown() 效果,在“hoverOut”函数中使用 .slideUp()。最初的 .slideDown() 有效,但是当光标离开该区域时,而不是应用 .slideUp() 元素会立即消失。同样,任何后续的 mouseover/mouseout 事件都不会触发“hoverIn”或“hoverOut”函数 - 需要完整的页面刷新才能应用初始“hoverIn”函数。
我尝试了许多不同的 jQuery 动画效果,包括 .fadeIn()、.fadeOut()、.show()、animate() 等 - 都没有成功。我过去也曾多次遇到过这个问题,我想知道可能是什么原因造成的。
这是我正在使用的 hoverIntent 代码:
var ddMainMenuConfig = {
over: revealMainMenuChildren, // function = onMouseOver callback (REQUIRED)
timeout: 700, // number = milliseconds delay before onMouseOut
out: hideMainMenuChildren
};
function revealMainMenuChildren(){ $(this).find("ul").filter(":first").stop().slideDown(300); }
function hideMainMenuChildren(){ $(this).find("ul").filter(":first").stop().slideUp(500); }
$("#menu ul ul").parent().addClass("ddarrow").append("<span class=\"childIndicator\"></span>");
$("#menu ul ul").css({display: "none"}); // Opera Fix
$("#menu ul li").hoverIntent(ddMainMenuConfig);
万一您想查看发生这种情况的测试页面,这里有一个链接:
http://test.nimblehost.com/dexture/
将不胜感激有关为什么会发生这种情况以及如何解决它的任何建议。我正在使用 jQuery v1.7.x,通过 Google CDN 提供服务,以及 hoverIntent 的 r6。