1

特定のIDを持つIDパラメーターを受け取るprofile.phpへのリンクを含むリストビューを持つindex.phpがあります。

<div data-role="content">
    <div class="choice_list">
        <ul data-role="listview" data-inset="true" >
            <li><a href="profile.php?id=1" data-transition="slidedown"><img src="martin.jpg"/>Martin</a></li>
            <li><a href="profile.php?id=2" data-transition="slidedown"><img src="liisa.jpg"/>Liisa</a></li>
        </ul>
    </div>
</div>

profile.phpには、以下の中でたくさんのことを実行しなければならないprofile.jsファイルを含めます。

$(document).ready(function() {

    // Loads specific user data via API calls

});

問題:初めてprofile.phpにアクセスするとすべて正常に機能しますが、再度アクセスするとJavascript(profile.js)が実行されません。私は以前に同様の質問がされたことを知っていて、それらの多くをチェックしましたが、私は答えを本当に理解していませんでした、そして私が試したいくつかの解決策はまったくうまくいきませんでした(ページからjqmを止めようとしましたキャッシングなど)。私のコードに適用できるこの問題のやや簡単な解決策はありますか?

jquery.mobile-1.0.1.jsを使用する

前もって感謝します

/アンドレアス

4

1 に答える 1

2

イベントのjQuerymobileドキュメントには、次のように記載されています。

重要:$(document).ready()ではなく、$(document).bind('pageinit')を使用してください

jQueryで最初に学ぶことは、$(document).ready()関数内のコードを呼び出して、DOMがロードされるとすぐにすべてが実行されるようにすることです。ただし、jQuery Mobileでは、ナビゲート時に各ページのコンテンツをDOMにロードするためにAjaxが使用され、DOMレディハンドラーは最初のページに対してのみ実行されます。新しいページがロードおよび作成されるたびにコードを実行するには、pageinitイベントにバインドできます。

pageinitページが最初に読み込まれたときにのみ発生すると思います。そのため、ページに移動してから別のページに移動し、最初のページに戻った場合、initイベントは2回目に発生しません。これを克服するために、pageshowおそらくイベントを使用することもできます

于 2012-08-18T13:22:33.710 に答える