2014-03-30 55 views
1

我想給出一個高層次的解釋,我的問題是什麼,因爲我不能提出太複雜的完整代碼。無法在動態分析的內容上運行腳本

我有一個按鈕。當我點擊按鈕時,它會從fb中提取數據並解析它並將其添加到頁面中。現在它被加載到然後頁面..我想在加載的內容上運行腳本。我在解析數據後運行腳本,但不知怎的,它顯示該元素沒有被時間腳本開始運行加載。有人可以拋出一些光。

$("somebutton").on("click",function(){ 
    LoadAndParseFbData(); 
}); 

function LoadAndParseFbData(){ 
    //loaded the json, parsed it and added to the page. 
    anotherScript(); 
} 

function anotherScript(){ 
    // this has some script related to data which is loaded dynamically by parsing json. 
} 

這就是我想要的高層次。請幫助謝謝:)

+1

確保'內容加載後anotherScript'是真正運行。我假設你通過Ajax加載數據,所以函數調用必須在Ajax成功處理程序中進行。 –

+0

這是一個FB.api調用我從哪裏解析json內容並將其添加到頁面。但我想知道是否有辦法讓腳本只在數據被解析並完全加載到頁面上之後運行。 anotherScript返回的元素的長度爲0,這意味着腳本開始運行時無法找到內容。 –

+0

*「我想知道是否有辦法讓腳本只在數據被解析並完全載入頁面後才能運行」*:正如我所說的,使用FB API回調調用該函數。 –

回答

1
$("somebutton").on("click",function() 
    LoadAndParseFbData(); 
}); 

function LoadAndParseFbData(){ 
    FB.api(path, method, params, function(){ 
     //loaded the json, parsed it and added to the page. 
     anotherScript(); 
    });   
} 

function anotherScript(){ 
    // this has some script related to data which is loaded dynamically by parsing json. 
} 
0

運行anotherScript()從阿賈克斯成功回調中:

$J.ajax({ 
    url: url2, 
    type: "post", 
    data: { data: "yourdata", }, 
    success: function (data, textStatus, jqXHR) { 
     anotherScript(); 
    }, 
    error: function(jqXHR, textStatus, errorThrown) { 
     /*error handling code here*/ 
    } 
}); 
+0

對不起我在說FB.api電話..以上評論@Felix Kling回答了它 –