2011-07-20 5 views
0

JQueryの「表示」と「非表示」メソッドを使用してページのコンテンツを動的に変更するWebWorksアプリケーションの開発に取り組んでいます。プログラムでブラックベリーウェブワークアプリケーションのフォーカスを変更

アプリケーションは、最初にいくつかのテキスト入力とJQueryスタイルのハイパーリンクボタンを含むページを読み込みます。開始ページのフォーカスは、x-blackberry-initialFocus属性で定義されます。

ハイパーリンクボタンの1つが選択されると、JQueryは表示されたテキスト入力とボタンを隠し、別のテキスト入力とハイパーリンクボタンのセットを表示します。この時点で、フォーカスナビゲーションが中断し、フォーカスのある要素がないように見えます。

私は、自分のconfig.xmlにblackberry.focusを使用し、 "blackberry.focus.setFocus( 'my_text_input_id')"を実行する権限を追加しようとしましたが、何の効果もありませんでした。

jQueryのshowメソッドのコールバック関数でsetFocusを呼び出すことによって、目的のHTML要素がDOMに追加された後にsetFocusの呼び出しが実行されたことが保証されました。また、JQueryを使用して、setFocusを呼び出して要素が存在していることを確認してから、目的のテキスト入力を選択しました。

さらに、setFocus()を呼び出す前後でblackberry.focus.getFocus()を呼び出しましたが、getFocus()メソッドは各呼び出しで空の文字列を返しました。

なぜ私は焦点を取り戻すことができないのですか?

答えて

1

私はまったく同じ問題を抱えていました。

blackberry.focus.setFocus("element");は効果がありませんでしたが、もう一度表示/非表示エフェクトを作成する要素をクリックすると、コードは正常に動作します。

次いで、溶液をsetTimeoutを使用している:それは本当に良い作品

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

私はこれがあなたの問題の解決に役立つことを望みます。

関連する問題