1

我对 JQuery 还很陌生,我遇到了淡出然后加载的问题。

我的代码是:

$("#refresh").live("click", function() {
    $("#postbit").fadeOut("slow");
       $("#postbit").load('load.php').fadeIn("slow");
    return false;
}); 

但这似乎不起作用。如果我之前没有 fadeOut 并且只是加载它,它工作正常。但是有没有办法让它先淡出然后让它慢慢淡入:)

谢谢

4

2 回答 2

3

.fadeOut()与许多其他 jQuery 函数一样,允许您指定在动画完成执行的回调函数:

$("#refresh").live("click", function() {
    $("#postbit").fadeOut("slow", function() {
       $("#postbit").load('load.php').fadeIn("slow");
    });

    return false;
}); 

.fadeOut()一旦淡出动画完成,这将执行匿名函数(的第二个参数)内的代码。


顺便说一句,您不应该再使用.live()它,因为它已被弃用,而支持.on().

于 2012-07-13T15:13:19.583 回答
2

如果您使用的是 jQuery 1.7 或更高版本(可能,如果您是新手),则不应再使用.live,因为它不仅不好,而且在以后的版本中也会被删除。 return false从事件也很糟糕

// Change this to the known parent of #refresh
// Do you even need delegation?
$("#refresh").closest('*').on('click', '#refresh', function (e) {

   // Callback to fadeOut (after fadeOut): load
   $("#postbit").fadeOut('slow', function () {

      // So you can reference this element without selector later
      var $this = $(this);

      // Callback to load -- takes place after load completes
      $this.load('load.php', function () {
         $this.fadeIn('slow');
      });
   });

   // Prevent click from doing whatever it would normally do on #refresh
   e.preventDefault();
});
于 2012-07-13T15:18:03.167 回答