jQuery Accordion Focus

时间:2010-04-06 12:56:36

标签: jquery jquery-ui jquery-ui-accordion

这是我的第一篇文章,如果您想了解更多信息,请告诉我们。

我正在使用选择列表和jQuery手风琴。当用户从列表中选择一个值时,它会使用activate方法打开手风琴的相关部分。

除了可以将窗口聚焦在手风琴上而不是将用户放在同一个地方之外,它的工作正常。

有谁知道如何防止这种情况?

1 个答案:

答案 0 :(得分:2)

您可以存储当前活动的元素,并在用户点击手风琴标题后恢复焦点。

您可以使用以下代码检索当前关注的元素:

function onElementFocused(e)
{
    if (e && e.target)
        document.activeElement =
        e.target == document ? null : e.target;
} 

if (document.addEventListener)
    document.addEventListener("focus", onElementFocused, true); 

这会将当前关注的元素保留在document.activeElement变量中。

使用'changestart'和/或'用手风琴改变事件,你可以在每次手风琴改变时将焦点恢复到所需的元素。

您可能需要添加一个或两个子句以防止将accordion标头div设置为上述代码中的当前活动元素,否则您只需将焦点恢复为折叠标头。

上面的代码是未经测试的,正如这个想法一样,但我相信它应该可行。