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,我得到(“我在线!”)弹出 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 回答