1

誰かがこのようなことを経験したことがありますか。コールバック関数があり、このように実装しています。

function onBodyLoad()
    {
        $('.loading').bind('click',function(){
                           console.log("loading screen should show now");
                           $('#teaserslider').hide();
                           $('#resultslider').hide();
                           $('#loading-screen').show();
        })
        document.addEventListener("deviceready", onDeviceReady(), false);


    }


    function onDeviceReady()
    {
        $('#loading-screen').hide();
        setUpDatabase();
        document.addEventListener("online", deviceIsOnline, false);
    }

    function deviceIsOnline(){
        alert("Im online!");
        if (true){
            persistResultHistory();
        }

    }

Wi-Fi に接続すると、(「Im online!」) ポップアップが 3 回表示されます。プロジェクト全体を検索しましたが、ここでのみ呼び出されます。ではなぜ3回?また、インターネットに接続せずに機内モードをオンにすると、ポップアップが 1 回表示されます。誰もが同様の行動を経験しましたか? どんな助けでも大歓迎です。

4

1 に答える 1

1

メソッドの参照を与えるのではなく、すぐにメソッドを呼び出しているため、次のように置き換えます。

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

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

addEventListener()関数の外側にも置いて、onBodyLoad()すぐに実行させます。

完全なソース コードはこちら - https://gist.github.com/3077171

于 2012-07-10T05:33:02.580 に答える