以编程方式更改黑莓webworks应用程序中的焦点

时间:2011-07-20 20:41:41

标签: jquery mobile focus blackberry-webworks

我正在开发一个使用JQuery的“show”和“hide”方法来动态更改页面内容的WebWorks应用程序。

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

当选择其中一个超链接按钮时,JQuery会隐藏显示的文本输入和按钮,并显示一组不同的文本输入和超链接按钮。此时,焦点导航中断并且看起来没有元素具有焦点。

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

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

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

有谁知道为什么我似乎无法重新获得焦点?

1 个答案:

答案 0 :(得分:1)

我有完全相同的问题。

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

然后解决方案是使用setTimeout

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

它的效果非常好。

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