如何淡出,设定价值,淡入淡出; 但做得更好'

Zab*_*bba 4 jquery effect

假设元素值为55:

<span id="some">55</span>
Run Code Online (Sandbox Code Playgroud)

我想要:

  1. 淡出元素
  2. 设定值44
  3. 淡化元素

所以我尝试过:

$("#some").fadeOut("slow").html("44").fadeIn("slow");
Run Code Online (Sandbox Code Playgroud)

但是上面首先将跨度的内容设置为44,然后淡出并淡入.

所以我尝试了一个回调:

function fadeOutComplete(){
  $("#some").html("<%= @cc %>").fadeIn("slow");
}
$("#some").fadeOut("slow",fadeOutComplete);
Run Code Online (Sandbox Code Playgroud)

现在这个工作,但它的外观和感觉笨重.有没有办法写这个DRYer和更多jQuery-er?(甚至不确定我的意思是jQuery-er!)

我怎样才能传入要设置其值的元素和要设置的值,fadeOutComplete以便我可以将该回调排序为泛型?

ale*_*lex 12

检查一下......

$("#some").fadeOut("slow", function() {
   $(this).html("<%= @cc %>").fadeIn("slow");
});
Run Code Online (Sandbox Code Playgroud)
  • 您可以传递一个匿名函数,以防止注册一个毫无疑问只能使用一次的命名函数.
  • 在complete for的回调中fadeOut(),this指向本机DOM元素.这允许您以干燥的方式再次引用它.


Koo*_*bin 5

相同的方法,但有一些清洁:

$('#some').fadeOut('slow',function(){
     $(this).html('somehtml').fadeIn('slow');
});
Run Code Online (Sandbox Code Playgroud)