次のように、jQuery Mobile が公開する「ページ イベント」にバインドしますpageinit
。
$(document).delegate('#my-page', 'pageinit', function () {
//this is like document.ready for this pseudo-page
});
jQuery Core 1.7.1 を使用.on()
しているので、構文が少し異なるものを使用できます。
$(document).on('pageinit', '#my-page', function () {
//this is like document.ready for this pseudo-page
});
3 つのメソッドはすべて、同様のことを行います。withをルート選択.live()
として使用するのと同じことですが、減価償却されているため、使用を停止することをお勧めします (ソース: http://api.jquery.com/on )。要素を直接使用することは使用することと同じですが、使用する場合は、関数呼び出しではなくイベント ハンドラーでイベントが発生した疑似ページを特定する必要があります。.delegate()
document
.bind()
document
.delegate()
.bind()
例えば:
$(document).bind('pageshow', function () {
var id = $.mobile.activePage[0].id;
//you can use $.mobile.activePage to do work on the current page
});
一般に、要素が DOM にいつ存在するかわからない場合は、イベント委任が使用されます。ルート選択に到達するまでDOMをバブリングするイベントに依存しています(あなたの場合、それは常にdocument
要素です)。
のドキュメント.delegate()
: http://api.jquery.com/delegate
これらの関数の違いに関するより一般的な情報については、次の記事を参照してください (正確性を確認するために読んだところ、正しいです) 。 jquery-bind-vs-live.html