2012-01-10 95 views
0

您好我在将js函数和jQuery函数结合时遇到了一些麻烦。下面的代码工作,但正如你可能已经猜到了,我希望先褪色,然后更改HTML,然后渐回。jQuery回调加js函数

function updateit(a) { 
    $("#monthlyHead").fadeOut(100); 
    $("#monthlyText").fadeOut(100); 

    if (a == 1) { 
     $("#monthlyHead").html(headone); 
     $("#monthlyText").html(textone); 
    } 
    else if (a == 2) { 
     $("#monthlyHead").html(headtwo); 
     $("#monthlyText").html(texttwo); 
    } 

    $("#monthlyHead").fadeIn(900); 
    $("#monthlyText").fadeIn(900); 
} 
+0

jQuery _is_ JavaScript。 – 2012-01-10 21:19:16

回答

1
function updateIt(a){ 
    $("#monthlyHead,#monthlyText").fadeOut(100,function(){ 
      if (a == 1) { 
       $("#monthlyHead").html(headone); 
       $("#monthlyText").html(textone); 
      } else if (a == 2) { 
      $("#monthlyHead").html(headtwo); 
      $("#monthlyText").html(texttwo); 
      } 

     $(this).fadeIn(900); 
    }); 
} 
1

淡出,淡入,所有的jQuery的动画方法取一个可选的“回调”参数,在动画完成时运行。这就是你应该在这里使用的。所以:

$("#monthlyHead").fadeOut(100, function() { 
    if (a == 1) { 
     $("#monthlyHead").html(headone); 
    } 
    else { 
     $("#monthlyHead").html(headtwo); 
    } 
    $("#monthlyHead").fadeIn(900); 
}); 
0

简体DEMO这里

试试这个

function updateit(a) { 

    $("#monthlyHead").fadeOut(100, function() { 
     if (a == 1) { 
      $("#monthlyHead").html(headone); 
     } else if (a == 2) { 
      $("#monthlyHead").html(headtwo); 
     } 

    }).fadeOut(900); 

    $("#monthlyText").fadeOut(100, function() { 
     if (a == 1) { 
      $("#monthlyText").html(textone); 
     } else if (a == 2) { 
      $("#monthlyText").html(texttwo); 
     } 

    }).fadeOut(900); 
} 
-1

你试过下面的结构?

$(selector).fadeOut(100, function(){ 
    $(selector2).html(text); 
    $(selector).fadeIn(900); 
});