显示文本一段时间

时间:2011-08-31 14:45:35

标签: jquery html anchor fade

快速而肮脏的例子:

<a href="" class="test">save</a>

$(".test").click(function(e){
    e.preventDefault();
    $(this).html("saved");
 };

我想要一个带有保存的链接,点击它之后,它会显示保存半秒,然后它会退回到从内部加载的文本(必须存储在var或其他内容中)。

如果有人能给我一个快速的例子,如何在一个锚中得到文本(/ store / delay),我想我能用褪色之类的东西来设置动画。

5 个答案:

答案 0 :(得分:3)

您必须使用setTimeout,如下所示:

<a href="" class="test">save</a>

$(".test").click(function(e){
    e.preventDefault();
    var previousText = $(this).html();
    $(this).html("saved");
    setTimeout(function() { $(this).html(previousText) }, 500);
};

答案 1 :(得分:1)

尝试以下

$(document).ready(function() {
  $('.test').click(function(e) {
    var link = this;
    e.preventDefault();
    $(this).html("saved");
    setTimeout(function() { $(link).fadeOut(1000) }, 500);
  });
});

小提琴:http://jsfiddle.net/vPeT3/

答案 2 :(得分:1)

你可以这样做:

$(".test").click(function(e){
    e.preventDefault();
    var that = this;
    var text = $(this).html();
    $(this).html("saved");
    setTimeout(function(){
        //fade back
        $(that).html(text);
    }, 1000);
 });

在这里摆弄:http://jsfiddle.net/MPCQs/

答案 3 :(得分:0)

您可以存储以前的数据($(this).html()),更改文本,然后使用setTimeout在指定的时间后重置文本。

答案 4 :(得分:0)

这样的事情:

$(".test").click(function(e){
    var $a = $(this);
    var txt = $a.html();
    $a.html("saved").fadeOut('slow', function () { $a.html(txt).fadeIn('fast'); });
    return false;
 })

您可以在淡入淡出方法中指定任何以毫秒为单位的值,而不是“慢”或“快”。

演示:http://jsfiddle.net/kSB9M/