我正在使用流行的hoverIntent jQuery插件来下载超级菜单。
http://cherne.net/brian/resources/jquery.hoverIntent.html
我将它附加到列表项目:
$myMenuOfLIs
.hoverIntent(megaConfig)
这可以按预期工作:如果我将鼠标悬停在LI上,则会触发hoverIntent并显示菜单。
每个LI也有一个锚标记(链接)。我希望能够在链接(焦点)上有一个人物选项卡,然后触发菜单。这是为了通过键盘使菜单工作。
我尝试了各种设置,但似乎没有设置:
$myMenuOfLIs
.hoverIntent(megaConfig)
.find('a:first')
.hoverIntent(megaConfig)
$myMenuOfLIs
.hoverIntent(megaConfig)
.find('a:first')
.hover()
即使是这个烂摊子:
$myMenuOfLIs
.hoverIntent(megaConfig)
.find('a:first')
.focus(function(){
$(this).parent().hover(function(){
$(this).hoverIntent(megaConfig)
})
})
有没有人使用过hoverIntent以及键盘/焦点事件?我的语法或逻辑是错误的吗?
UPDATE /溶液
我正在挖掘hoverIntent逻辑并意识到它本身正在触发显示/隐藏菜单的功能。我的特定问题的解决方案是不通过另一个事件触发hoverIntent,而是通过我的焦点事件直接调用hoverIntent调用的函数。后见之明显而易见。
答案 0 :(得分:0)
您是否将键盘事件(keyUp,keyPress或keyDown)绑定到这些关联元素?我没有使用过这个插件,但看起来这个插件只是将悬停事件绑定到它创建的元素上。您可能必须将键盘事件显式绑定到要触发的元素。在键盘事件的处理程序中,您需要检查并查看用户按下的键是否为选项卡。您可能还必须以某种方式保存状态(当前活动菜单等,尽管您可以将其委托给插件本身 - 只是猜测 - 以前没有使用过这个插件!)。