0

我正在开发一个 WebWorks 应用程序,它使用 JQuery 的“显示”和“隐藏”方法来动态更改页面内容。

该应用程序最初加载一个页面,其中包含一些文本输入以及一个 JQuery 样式的超链接按钮。起始页上的焦点是使用 x-blackberry-initialFocus 属性定义的。

When one of the hyperlink buttons is selected JQuery hides the displayed text inputs and buttons, and shows a different set of text inputs and hyperlink buttons. 此时,焦点导航中断,似乎没有元素具有焦点。

我尝试将使用 blackberry.focus 的权限添加到我的 config.xml 并执行“ blackberry.focus.setFocus('my_text_input_id'), ”,但这没有任何效果。

我通过将 setFocus 的调用放在 JQuery show 方法的回调函数中,保证在将所需的 HTML 元素添加到 DOM 之后执行对 setFocus 的调用。在调用 setFocus 以确保元素存在之前,我还使用 JQuery 来选择所需的文本输入。

此外,我在调用 setFocus() 之前和之后调用了 blackberry.focus.getFocus(),但 getFocus() 方法在每次调用时都返回一个空字符串。

有谁知道为什么我似乎无法重新集中注意力?

4

1 回答 1

1

我有完全相同的问题。

我发现blackberry.focus.setFocus("element");没有效果,但是如果我再次单击使显示/隐藏效果的元素,代码可以正常工作。

然后解决方案是使用setTimeout

setTimeout(function(){
   blackberry.focus.setFocus("show_menu");
},100);

它真的很好用。

我希望这可以帮助您解决问题

于 2011-10-27T16:36:00.087 回答