如何在另一个jquery操作之后刷新元素(div,class whatever)?
我有这个动作正在从数据库中删除一条记录,我需要刷新div,这也是从数据库中获取一些其他数据...
这里的代码:
$(function() {
$(".delete").click(function() {
var commentContainer = $(this).parent();
var id = $(this).attr("id");
var string = 'id='+ id ;
$.ajax({
type: "POST",
url: "delete.php",
data: string,
cache: false,
success: function(){
commentContainer.slideUp('slow', function() {$(this).remove();});
}
});
return false;
});
});
感谢您的帮助! :)
答案 0 :(得分:7)
在AJAX调用期间,您可以使用success函数在成功调用后运行命令。您已经在代码中使用了一个函数,因此更新该函数非常简单。您想要更新的第二个div也可以加载AJAX。
$.ajax({
//other options
success:function(){
commentContainer.slideUp('slow', function() {$(this).remove();});
$('#otherdiv').load('urlofpagewith info.php');
}
});
答案 1 :(得分:5)
简单地公开成功回调的data
参数并替换任何元素的内容,在本例中div id =“someDiv”:
$.ajax({
type: "POST",
url: "delete.php",
data: string,
cache: false,
success: function(data){
commentContainer.slideUp('slow', function() {$(this).remove();});
$('#someDiv').html(data);
}
});
有关详细信息,请参阅ajax options。
另外,对于上帝之爱不要使用类型名称作为变量名称,即使string
不是reserved word in Javascript(使用data: str
或而是data: dataString
。
答案 2 :(得分:0)
为什么不添加一个在第一个ajax成功后进行刷新的函数(假设你不能将这两个组合成一个更高效的ajax请求)。
...
function doRefresh_ofAnotherDiv() {
$.ajax({
type: ...,
url: ...,
data: ...,
cache: ...,
success: function(){
// updateAnotherDiv();
}
});
}
...
$.ajax({
type: "POST",
url: "delete.php",
data: string,
cache: false,
success: function(){
commentContainer.slideUp('slow', function() {$(this).remove();});
doRefresh_ofAnotherDiv();
}
});
...
希望这有帮助。
答案 3 :(得分:0)
几乎所有jquery函数都能够使用回调函数。只要原始动作完成执行,就会调用它们。所以这可以用于任何函数,而不仅仅是ajax。