2012-03-27 82 views
2

我偶然发现了一个问题。我正在使用一个用jQuery编写的简单的AJAX脚本,我想让AJAX回调以easyInOut效果为例改变html,但我不知道该怎么做,因为现在,当响应来临时,div的内容会发生变化带有某种闪烁效果,这非常丑陋,我认为这是默认的“效果”。jQuery的AJAX回调效果

脚本:(我试图添加.fadeOut('slow')html()方法,但什么都没有改变)

$.ajax({ 
    type: "POST", 
    url: "institutions-filter.action", 
    data: data, 
    cache: false, 
    success: function(result){ 
     $("#display-block").html(result); 
    } 
}); 

回答

6

隐藏它更改HTML之前,然后显示它:

$.ajax({ 
    type: "POST", 
    url: "institutions-filter.action", 
    data: data, 
    cache: false, 
    success: function(result) 
    { 
     var $el = $("#display-block"); 

     $el.fadeOut(400, function() 
     { 
      $el.html(result).fadeIn(400); 
     }); 
    } 
}); 

变化400到无论你想要什么时间...

+0

惊人的 “谢谢你” 是不够的,谢谢。谢谢。 :) – Denees 2012-03-27 20:04:52

1

试试这个:

$.ajax({ 
       type: "POST", 
       url: "institutions-filter.action", 
       data: data, 
       cache: false, 
       success: function(result){ 
       $("#display-block").html(result).fadeTo("slow", 1); 
       } 
      }); 
+0

你的解决方案没有奏效,但我会为你投票:)谢谢。 – Denees 2012-03-27 20:05:29

+0

谢谢,但仍然,fadeTo是我最喜欢的效果,如'easyInOut',我用它在我的所有项目上:] – autumncollection 2012-03-27 20:11:40

0

你必须

$("#display-block").hide().html(result).fadeIn('slow'); 

或者

$("#display-block").fadeOut('slow').html(result).fadeIn('slow'); 
+0

我已经使用了Joseph Silber解决方案,但我会投你一票:)谢谢。 – Denees 2012-03-27 20:06:06

+0

您需要使用效果的回调才能将它们正确链接在一起。 – cgTag 2012-07-16 17:29:58