1

Cordova ベースの Android アプリケーションを開発しています。すべての HTML ページはローカル (assets/wwwフォルダー内) です。jquery mobile changePage メソッドを使用して HTML ページをロードし、コールバックでイベント (ボタン クリック イベントなど) を登録しpageChangeます。

Android 2.3 以降の場合、これは正常に機能し、要求されたページが読み込まれ、イベント (クリック イベントなど) が適切にバインドされます。

Android 2.2 では、メソッド呼び出しで要求されたページが読み込まれますが、イベントが発生しないという問題に直面してchangePageますpageChange(そのため、クリック イベントが適切にバインドされません)。

何がこれを引き起こしているのでしょうか?changePageAndroidの下位バージョンに問題はありますか?

4

2 に答える 2

0

pageChangeイベントが Android 2.2 で機能しているかどうかはわかりませんが、簡単な回避策がいくつかあります。

代わりにPageshowを使用できます。これは、 pageChangeがトリガーされる前にトリガーされる最後のイベントであるため、イベント バインドにも使用できます。

$(document).on('pagebeforeshow', '#index', function(){ 

});

changePage最後に、クリック イベントをバインドするのを待つ必要はありません。委任されたイベント バインディングと呼ばれるものを使用できます。イベントがドキュメントにバインドされるため、オブジェクトがDOMに存在するかどうかは関係ありません。オブジェクトがクリックされた場合など、そのような必要性が存在する場合にのみ要素に伝達されます。

これは、委任されたイベント バインディングを行う方法です。

$(document).on('click', '#elementID', function(){ 

});
于 2013-05-28T07:43:46.313 に答える