【问题标题】:jquery hoverIntent and keyboard triggering on focusjquery hoverIntent和键盘触发焦点
【发布时间】:2011-01-12 18:58:44
【问题描述】:

我正在使用流行的 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 调用的函数。事后看来有点明显。

【问题讨论】:

标签: jquery keyboard focus hoverintent


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    • 2012-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多