JQuery fadeIn()触发两次

时间:2014-02-04 08:27:15

标签: jquery fadein

我在点击事件上通过ajax加载一些html内容。我的代码是 -

$.ajax({
  url: somelink,
  async: true,
  beforeSend: function () {
      $("#myDiv").fadeOut("slow");
      $("#myDiv").empty();
  },
  success: function (data) {
      $('#myDiv').html(data);
      $("#myDiv").fadeIn("slow");
  },
  error: function (request, status, error) {
     alert("Error");
  },
  complete: function () {
  }
 });

问题是#myDiv正在褪色两次。这有什么问题?

1 个答案:

答案 0 :(得分:3)

似乎与实际快速显示内容的html()调用相关,然后在fadeIn启动之前再次隐藏它。如果内容未更新,则fadeIn / out按预期运行。

您可以在成功函数中使用.hide():

beforeSend: function () {
    $("#myDiv").fadeOut("slow").empty();
},
success: function (data) {
    $('#myDiv').hide().html("test!").fadeIn("slow");
},