2010-04-06 70 views
2

这是我的第一篇文章,让我知道你是否想了解更多信息!jQuery Accordion Focus

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

这很好,除此之外,它还把重点放在手风琴上的窗口,而不是把用户放在同一个地方。

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

回答

2

您可能能够存储当前活动的元素,并在用户单击accordion标题后恢复焦点。

您可以使用下面的代码检索当前焦点元素:

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'和/或'change事件,可以在每次手风琴改变时将焦点恢复到所需的元素。

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

上面的代码没有经过测试,这是想法,但它应该工作,我相信。