0

JQuery の「表示」および「非表示」メソッドを使用してページ コンテンツを動的に変更する WebWorks アプリの開発に取り組んでいます。

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

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

config.xml に blackberry.focus を使用する権限を追加し、" 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 に答える