2014-03-06 28 views
1

我想document.ready函數應該在我的ajax獲得成功後調用。document.ready在ajax之前調用獲得成功

jsondatachart.js腳本我使用了一個ajax方法,其中我從excel工作表中獲取數據並存儲在窗口中。 ChartData如下。我所有的數據都存儲在window.ChartData中,但這是在調用document.ready()函數後發生的。

//「jsondatachart.js」腳本

$.ajax({ 
     type: "GET", 
     url: "Data.csv", 
     dataType: "text", 
     success: function(data) {window.chartData=data;} 
    }); 

html頁我已經提到這個腳本jsondatachart.js,腳本被加載和調試器被擊中在$阿賈克斯。但是,只有在執行document.ready函數後,成功函數纔會觸發。所以在主頁面使用的window.ChartData顯示爲undefined

我在IE瀏覽器中遇到這個問題,在firefox其工作正常。

<html> 
<head> 
    <script src="Scripts/jquery-1.10.1.min.js" type="text/javascript"></script> 
    <script src="Scripts/jquery.globalize.min.js" type="text/javascript"></script> 
    <script src="Scripts/jsondatachart.js" type="text/javascript"></script> 


</head> 
<body> 
    <div id="container"> </div> 
    <script type="text/javascript" language="javascript"> 

     $(function() { 
     // var data=window.ChartData; (showing window.ChartData is undefine) 
      }); 

簡單, 我想$(function(){})應該叫做Ajax中的成功功能被觸發後,才,這樣我可以讓我的document.ready()功能使用window.ChartData的。

在此先感謝

+2

文檔就緒狀態不依賴於ajax請求...依賴於ajax請求返回的值的所有操作都必須位於成功處理程序中 –

+0

您應該放置或調用需要'window.ChartData'裏面的成功功能。請參閱[如何從AJAX調用返回響應?](http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call)以獲取有關如何構建您的代碼。 –

+0

請檢查我的答案並讓我知道。 –

回答

2

首先,請明白兩件事情之間的不同,

  1. 文件。就緒和阿賈克斯完全independent。他們都用於不同的目的。

  2. 的document.ready函數被調用,當你dom完全loaded.It沒有與阿賈克斯任何連接。

  3. 阿賈克斯用於從您的Server side獲取數據。

    如果您不需要做任何事情與你ajax success,請做到以下幾點,

    $(document).ready(function() { 
    
        alert("DOM is ready"); 
    
    }); 
    
    function ajaxFunction(){ 
    
        $.ajax({ 
         type: 'POST', 
         url: "Your URL", 
         data : "param="+"paramValue", 
         dataType: 'html', 
         success: function(result) { 
          doWhatEver(); 
         }, 
         error: function(e){ 
          //alert('Error in Processing'); 
         } 
    
        }); 
    } 
    
    
    function doWhatEver() { 
         // Do your work Here. 
    } 
    

希望它能幫助。

相關問題