jQuery:在另一个jquery动作之后刷新div?

时间:2009-09-28 16:59:44

标签: jquery refresh

如何在另一个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;
    });
});

感谢您的帮助! :)

4 个答案:

答案 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。