2013-05-15 117 views
0

我在jquery中使用e.preventDefault()將html頁面加載到。 html頁面有一些Ajax動作,它將從服務器獲取數據。我知道它可以顯示頁面,但不能顯示它獲得的Ajax數據。在我看來,頁面顯示發生在ajax回調數據之前。但是在e.preventDefault之外,當點擊鏈接時,頁面會打開一個新頁面,它可以處理從ajax頁面返回的所有數據。任何解決方案或幫助延遲加載頁面。e.preventDefault在沒有Ajax數據的情況下加載空頁面

$(document).ready(function() { 
    $('a').click(function (e) {      
     $("#content").load($(this).attr("href"));    
     e.preventDefault();  
    });    
}); 
+3

你試過把'e .preventDefault();'首先,然後加載方法? –

+0

做到了這一點。相同的結果。 – user2386031

回答

0

最可能的原因是,該頁面正在加載的Ajax請求的火災爲事件處理的一部分。例如。

$(document).ready(function(){ 
    fetchDataByAjax(); 
} 

但是,當您通過ajax加載它時,不會觸發該事件。文檔準備好事件已經發生,並且只會發生一次。

爲了使它工作,你將爲此需要額外的JavaScript到一個普通的地方,並將其包含在這兩個頁面。在一箇中,你仍然會執行document.ready中的方法或你曾經使用過的方法),而在另一箇中,當你將html插入#content時,它會執行它。

相關問題