2011-07-20 70 views
0

我正在開發使用JQuery的「顯示」和「隱藏」的方法來動態地改變網頁內容的WebWorks應用程序。編程方式更改焦點黑莓WebWorks的應用

應用程序最初加載一個頁面有幾個文本輸入,以及一個jQuery風格的超鏈接按鈕。專注於開始頁面是使用x-blackberry-initialFocus屬性定義的。

當選擇JQuery的超鏈接按鈕中的一個隱藏所顯示的文本輸入和按鈕,並且示出了一組不同的文本輸入和超鏈接按鈕。此時,焦點導航會中斷,看起來沒有元素具有焦點。

我已經嘗試添加使用blackberry.focus到我的config.xml並執行「blackberry.focus.setFocus('my_text_input_id')」的權限,但是沒有任何效果。

我保證,通過將調用setFocus放入JQuery show方法的回調函數中,將期望的HTML元素添加到DOM後,執行setFocus調用。在調用setFocus之前,我還使用JQuery來選擇所需的文本輸入,以確保元素存在。

此外,我在調用setFocus()之前和之後調用blackberry.focus.getFocus(),但getFocus()方法在每次調用時返回一個空字符串。

有誰知道爲什麼我似乎無法重新獲得焦點?

回答

1

我有完全相同的問題。

我發現blackberry.focus.setFocus("element");沒有效果,但是如果再次點擊顯示/隱藏效果的元素,代碼就可以正常工作。

然後將溶液使用setTimeout

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

它的作品真的很好。

我希望這可以幫助你解決你的問題