jquery hoverIntent和键盘触发焦点

时间:2010-02-03 19:53:01

标签: jquery keyboard focus hoverintent

我正在使用流行的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调用的函数。后见之明显而易见。

1 个答案:

答案 0 :(得分:0)

您是否将键盘事件(keyUp,keyPress或keyDown)绑定到这些关联元素?我没有使用过这个插件,但看起来这个插件只是将悬停事件绑定到它创建的元素上。您可能必须将键盘事件显式绑定到要触发的元素。在键盘事件的处理程序中,您需要检查并查看用户按下的键是否为选项卡。您可能还必须以某种方式保存状态(当前活动菜单等,尽管您可以将其委托给插件本身 - 只是猜测 - 以前没有使用过这个插件!)。