2010-12-10 82 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... 
    }); 
});