2

いくつかの新しいイベントをバインドし、動的にロードされたページでいくつかの関数を呼び出したいのですが、そこにある例は古くなっているか、不完全であるように見えます(jqmドキュメントでさえ)。jQuery1.7.2とjQueryMobile1.2を使用しています。このようなことをする正しい方法は何ですか?

$('#someButton').click(function(e) {
        e.preventDefault();

        $.mobile.changePage("mypage2.html", {
            type: 'GET',
            changeHash: true
        });  

        //BELOW SHOULD BE CALLED WHEN THE PAGE LOADS THOUGH
        doSomething();
        $('#menu_page .request-items', contentScopeOfPage2).click(function (e) {
             doSomethingElse();
        });
});
4

1 に答える 1

3

通常、次のように、問題の疑似ページの委任イベントハンドラーを設定します。

$(document).on('pageinit', '#menu_page', function () {
    $(this).find('.request-items').on('click', doSomethingElse);
});

このコードをグローバルスコープに配置すると、#menu_page疑似ページが初期化されるたびに(リモートドキュメントであるか、同じドキュメント内の疑似ページであるかに関係なく)、clickイベントハンドラーが正しく設定されます。

これがデモです:http://jsfiddle.net/mSAzF/

于 2012-08-14T19:39:43.627 に答える