我正在开发一个使用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()方法在每次调用时都返回一个空字符串。
有谁知道为什么我似乎无法重新获得焦点?
答案 0 :(得分:1)
我有完全相同的问题。
我发现blackberry.focus.setFocus("element");
没有效果,但如果我再次单击显示/隐藏效果的元素,代码就可以正常工作。
然后解决方案是使用setTimeout
:
setTimeout(function(){
blackberry.focus.setFocus("show_menu");
},100);
它的效果非常好。
我希望这可以帮助您解决问题