簡體   English   中英

如何使用從jQuery的POST或GET方法返回的函數之外的數據?

[英]How to use data outside of function returned from POST or GET method of jquery?

如何使用從jQuery的POST或GET方法返回的函數之外的數據?

我的問題是我通過jquery post方法獲取一些數據..問題是,每當我獲取數據時,我就能夠在函數內部使用它,而實際上我希望該數據在函數外部使用。它不起作用...

function getlatlanfromjs() {
    $(document).ready(function() {
        var uid = $(".track_textbox").val();

        $.post("getLatLan.php", {userid: uid}, function(data) {
            var i;
            for (i = 1; i < 2; i++) {                
                initialize(data[i]["latitude"], data[i]["longitude"]);
            }
        }, "json");

        alert(data[1]["latitude"]); //this is actually not alerting..  what is the reason ?
    });
}

因為此時數據變量超出范圍。 下面的代碼會將數據分配給本地recievedData ,您可以在處理函數范圍之外使用它。 盡管您仍然只能在請求完成后才能訪問recievedData變量。

$(document).ready(function() {

    var recievedData;
    var uid = $(".track_textbox").val();


    var promise = $.post("getLatLan.php", {userid: uid}, function(data) {
        recievedData = data;
        var i;
        for (i = 1; i < 2; i++) {

            initialize(data[i]["latitude"], data[i]["longitude"]);

        }



    }, "json");

   promise.done(function() {
    alert(recievedData[1]["latitude"]); });

});

這好一點...

這樣,您就不會錯過執行。 如果將代碼包裝到閉包中,則以后也可以調用它。 因此,即使您的“ getlatlanfromjs”已經執行,您的alertFn仍然存在,並且在$.post完成后將被調用。

函數getlatlanfromjs(){$(document).ready(function(){var uid = $(“。track_textbox”)。val();

  var alertFn = function(data) { alert(data[1]["latitude"]); }; $.post("getLatLan.php", {userid: uid}, function(data) { var i; for (i = 1; i < 2; i++) { initialize(data[i]["latitude"], data[i]["longitude"]); } alertFn(data); }, "json"); }); } 
   var mydata = null;

    function getlatlanfromjs() {
    $(document).ready(function() {
        var uid = $(".track_textbox").val();

        $.post("getLatLan.php", {userid: uid}, function(data) {
            mydata = data;
            var i;
            for (i = 1; i < 2; i++) {                
                initialize(data[i]["latitude"], data[i]["longitude"]);
            }
        }, "json");
        if(mydata != null)   alert(data[1]["latitude"]); 
    });
}

您需要做的只是跟蹤數據范圍。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM