1

我正在使用流行的 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 以及键盘/焦点事件?我的语法或逻辑错了吗?

更新/解决方案:

我正在研究 hoverIntent 逻辑并意识到它本身正在触发显示/隐藏菜单的功能。我的特定问题的解决方案是不通过另一个事件触发 hoverIntent,而只是通过我的焦点事件直接调用 hoverIntent 调用的函数。事后看来有点明显。

4

1 回答 1

0

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

于 2010-02-03T19:57:26.717 回答