5

JQuery Mobile を使用する次のコードがあります。ここでのポイントは、「pageshow」イベントがトリガーされたときにいくつかのコードを実行することです。

以下のすべてのコードは Chrome でうまく動作します。コンソールログを見ることができます。ただし、これを Phonegap アプリケーションの一部として実行すると、「pageshow」イベントがトリガーされることはありません。

しばらくの間、これを調査してきましたが、成功していません。私のイベントが欠落している理由と、このコードを Phonegap で動作させるために必要な手順を誰かが説明してくれることを願っています。

details.html

<!DOCTYPE html>
<html>
<head>
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
        <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js">      </script>
        <link rel="stylesheet" href="css/index.css" />
        <!-- cordova -->
        <script src="cordova-2.2.0.js"></script>
</head>
<body>
    <div data-role="page" id="details_page">
      <a href="places.html" data-transition="slide" data-direction="reverse">Back</a>
      <h3>Hi I am second page</h3>
    </div>

    <script src="js/details.js"></script>

</body>
</html>

details.js

$("#details_page").live("pageshow", function() {
    console.log('I am alive! (details.html)');
});
4

3 に答える 3

6

以下を使用する必要があります

$(document).delegate("#details_page", "pageshow", function() {
    console.log("Hello world!");
});

また、deviceready イベントが発生した後にのみコードを実行できることにも注意してください。

したがって、デバイスの準備完了イベントでは、次のようになります。

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
    $(document).delegate("#details_page", "pageshow", function() {
        console.log("Hello world!");
    });
}

これが役に立てば幸いです、マイク

于 2012-12-12T14:09:00.747 に答える
3

あなたは今では解決しているかもしれませんが、私と同じようにこれに出くわした人のために、ここで私が解決することがわかったものがあります. live.() は JQuery 1.7 で廃止され、1.9 以降削除されました。代わりに on.() を使用してください。(ex.) 行を次のように変更しました。

$('#detailsPage').live('pageshow', function(event) {

に:

$(document).on('pageshow', '#detailsPage', function(event) {

HTH、発疹*

于 2013-08-12T13:55:55.837 に答える
0

問題は、ページが表示された後にJSに電話をかけていることだと思います。

それが問題ならあなたはただ置く必要があります

<script src="js/details.js"></script>

頭の中または「ページ」divの前

于 2012-12-12T15:09:53.077 に答える