如何淡出、定值、淡入;但要做得“更好”

发布于 2024-11-03 05:30:46 字数 667 浏览 1 评论 0原文

假设一个元素的值为 55:

<span id="some">55</span>

我想:

  1. 淡出元素
  2. 设置值 44
  3. 淡入元素

所以我尝试了:

$("#some").fadeOut("slow").html("44").fadeIn("slow");

但是上面的首先将跨度的内容设置为 44,然后< /em> 淡出并淡入。

所以我尝试使用回调:

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

现在这可以工作,但它看起来和感觉都很笨拙。有什么方法可以编写这个 DRYer 和更多 jQuery-er 吗? (甚至不确定jQuery-er是什么意思!)

我如何传入要设置值的元素以及要设置为fadeOutComplete的值,所以我可以使该回调变得通用吗?

Say a element has value 55:

<span id="some">55</span>

I want to:

  1. fade out the element
  2. set value 44
  3. fade in the element

So I tried:

$("#some").fadeOut("slow").html("44").fadeIn("slow");

But the above first sets the span's content to 44, and then fades out and fades in.

So I tried with a callback:

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

Now this works, but it's looks and feels clunky. Is there some way to write this DRYer and more jQuery-er? (not even sure what I mean by jQuery-er!)

How could I pass in the element whose value is to be set and the value to be set to fadeOutComplete so I can make that callback sort-of generic?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

云朵有点甜 2024-11-10 05:30:47

尝试这样:

$('#some').fadeOut('slow',function(){
$('#some').html('somehtml');
$('#some').fadeIn('slow');
});

try like this:

$('#some').fadeOut('slow',function(){
$('#some').html('somehtml');
$('#some').fadeIn('slow');
});
好倦 2024-11-10 05:30:47

这是淡入淡出命令的问题。该命令异步运行,这意味着当它淡出时,文本正在更改。查看这个问题的答案:jQuery 同步操作

This is a problem with the fade command. The command runs asyncronous, meaning while it is fading out the text is being changed. Look at this question for an answer: jQuery synchronous operation

爱本泡沫多脆弱 2024-11-10 05:30:46

检查这个...

$("#some").fadeOut("slow", function() {
   $(this).html("<%= @cc %>").fadeIn("slow");
});
  • 您可以传递一个匿名函数,以防止注册一个毫无疑问只会使用一次的命名函数。
  • fadeOut() 的完整回调中,this 指向原生 DOM 元素。这允许您以 DRY 方式再次引用它。

Check this...

$("#some").fadeOut("slow", function() {
   $(this).html("<%= @cc %>").fadeIn("slow");
});
  • You can pass an anonymous function, to prevent registering a named function that will no doubt only be used once.
  • Inside the callback of the complete for fadeOut(), this is pointing to the native DOM element. This allows you to reference it again in a DRY way.
雨轻弹 2024-11-10 05:30:46

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

$('#some').fadeOut('slow',function(){
     $(this).html('somehtml').fadeIn('slow');
});

Same approach but with some cleanliness:

$('#some').fadeOut('slow',function(){
     $(this).html('somehtml').fadeIn('slow');
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文