Javascript在浏览器中运行,而不是在带有cordova的phonegap应用程序中运行

Javascript在浏览器中运行,而不是在带有cordova的phonegap应用程序中运行,javascript,ios,html,cordova,Javascript,Ios,Html,Cordova,下面的代码是针对需要将一些值保存到本地存储的表单的,我已经让它在浏览器中工作,但是当我在xcode/cordova中加载它时,它不会启动该函数。我尝试过调试,因此出现了很多很多警报,我尝试过在DWCS6中使用live view,但没有效果,我似乎无法让它运行。你能找出错误吗 函数savespan()有一个if循环,当它退出if-then-else循环时,它不会在xcode模拟器中继续。在浏览器中,它确实会继续 更新:它的作用是:有一个滑块,可以生成一个值,该值需要与两个其他值(由JavaScri

下面的代码是针对需要将一些值保存到本地存储的表单的,我已经让它在浏览器中工作,但是当我在xcode/cordova中加载它时,它不会启动该函数。我尝试过调试,因此出现了很多很多警报,我尝试过在DWCS6中使用live view,但没有效果,我似乎无法让它运行。你能找出错误吗

函数
savespan()
有一个if循环,当它退出if-then-else循环时,它不会在xcode模拟器中继续。在浏览器中,它确实会继续

更新:它的作用是:有一个滑块,可以生成一个值,该值需要与两个其他值(由JavaScript生成)一起保存在本地存储器中,即日期和记录计数。所以一共有三个价值观

脚本使用jquery mobile运行,启动此功能的按钮工作,我使用了
document.ready
,而不是
onBodyLoad
,它基本上工作正常,但在phonegap/ios/xcode模拟器或设备中,
savespan
功能无法进一步实现

function saveSpanning() {
    alert("saveSpanning gestart!");
    var inputSpanning = document.getElementById("valSliderSpanning").value;
    alert("input spanning = " + inputSpanning);

    //For Time
    var mes_time = document.getElementById("tijdSpanning").value;
    var mestimearr = mes_time.split(":");
    //For Date
    var mes_date = document.getElementById("datumSpanning").value;
    var mesdatearr = mes_date.split("-");
    var d = new Date();
    var curr_date = d.getDate();
    var curr_month = d.getMonth() + 1; //Months are zero based
    var curr_year = d.getFullYear();
    var curr_hours = d.getHours();
    var curr_min = d.getMinutes();
    var curr_sec = d.getSeconds();
    //newDate = curr_year + "/" + curr_month + "/" + curr_date + " " + curr_hours + ":" + curr_min + ":" + curr_sec
    // origienel opmaak datum newDate = mesdatearr[0] + "/" + mesdatearr[1] + "/" + mesdatearr[2] + " " + mestimearr[0] + ":" + mestimearr[1] + ":00";
    newDate = mesdatearr[0] + "/" + mesdatearr[1] + "/" + mesdatearr[2];

    alert("deze datum wordt opgelsage: " + newDate);

    //var itemId = newDate.getTime(); //creates a unique id with the milliseconds since January 1, 1970
    var itemId = "spanningKey";
    var values = new Array();
    values.push(newDate); //push each value into our values array
    values.push(inputSpanning); //push each value into our values array
    //alert(inputSpanning);

    var spanningCountVal = localStorage.getItem('spanning_count');

    //alert(spanningCountVal);
    if (spanningCountVal == null) {
        spanningCountVal = 1;

        alert("spanningCountVal was null, en wordt dus nu 1: " + spanningCountVal);

    }
    else {
        spanningCount = parseInt(spanningCountVal) + 1;
        alert("zit nu in de else loop: " + spanningCount);

    }

    alert("uit de ifthenelseloop, spanningCount = " + spanningCount);

    itemId = itemId + '-rec-' + spanningCount;
    alert("itemid: " + itemId);
    alert("spanningCountVal: " + spanningCount);


    localStorage.setItem("spanning_count", spanningCount); //store the item in the database
    localStorage.setItem(itemId, values.join("|")); //store the item in the database
    alert("Successfully Saved.");
}


$(document).ready(function() {

    $("#button").click(function() {
        alert("hallo functie");
    });

    $("p").text("The DOM is now loaded and can be manipulated.");



    $('#button2').click(function() {
        alert('Button has been clicked');
    });
    $('#knopje').click(function() {
        saveSpanning();
    });
});​

当所有DOM元素都已加载并可访问时,将调用
document.ready
。在浏览器中,这通常是开始执行要求DOM就绪的代码的好时机

但是,在Phonegap/Cordova中,在触发
document.ready
事件后会运行许多步骤,包括连接到调试控制台


相反,您需要等待事件知道phonegap/cordova何时已完全加载并准备好执行。在
$(文档)内部。在('ready')
上,您需要为
deviceready
添加一个事件侦听器,该侦听器将触发您的方法

你打算让它做什么?现在发生了什么?这真的是你能给我们的最短的代码吗?让我为你更新这篇文章……有趣的是,你在一个方法名中使用了荷兰语和英语:pahh,哇。非常感谢。更新。