2010-12-10 83 views
2

嗨我想調用一個名爲load.php的文件,並通過AJAX檢索結果。但由於我不知道的原因,我的代碼無法正常工作。這裏是我的代碼:ajax不工作在jquery

$.ajaxSetup({ 
    cache:false 
}) 
var ajax_load="<img src='loading.gif' alt='loading...' />"; 
var loadurl = "load.php"; 
$("#add").click(function(){ 
    $("#result").html(ajax_load).load(loadurl, null, function(responsetext){ 
     alert("response text: "+responsetext); 
    }); 
}); 

add是我的按鈕的ID和result就是我想要的結果我的div的ID。

到服務器獲取結果的時候,我想要加載gif圖像正在運行,並且當加載完成後,將顯示shud內容。

另外,我不想要設置緩存選項,所以我將它設置爲false。

我已將所有必需的庫和文件包含在正確的路徑中。誰能幫我?

+0

什麼不工作?你遇到了什麼錯誤? – 2010-12-10 10:47:43

+1

你有螢火蟲嗎?您可以在那裏看到錯誤消息。它確實可以幫助你調試你的ajax。 – 2010-12-10 10:51:33

+0

我沒有收到任何錯誤。有沒有從服務器響應... @尼克 – CHID 2010-12-10 10:56:10

回答

0

爲了後代的緣故(考慮到答案似乎已在評論中得到解決)。這個問題似乎是在準備好之前試圖訪問DOM的結果。

$("#add").click(function(){ 
    // Code... 
}); 

上面的代碼依賴於元件上ID爲「添加」(即<a href='#' id='add'></a>)存在於DOM以便傳遞給點擊功能可以附加到其單擊事件。

在元素變爲可用之前避免嘗試附加到元素的事件的一個重要方法是等待整個DOM加載。 jQuery's ready method這樣做並接受需要等待作爲函數參數的代碼。

$(document).ready(function(){ 
    $("#add").click(function(){ 
    // Code... 
    }); 
}); 

當傳遞一個函數時,jQuery還重載了具有相同功能的$方法。這提供了以下方便的簡寫,通常用於代替。

$(function(){ 
    $("#add").click(function(){ 
    // Code... 
    }); 
});