我改变一些文字时需要延迟

时间:2015-05-18 18:22:11

标签: javascript jquery delay

我需要一个提示!我想延迟更改一些文本。使用.delay它不起作用,因为它不是一个队列。然后我用.setTimeout尝试了它。这很有用,但只适用于一个文本框。当我添加另一个时,它无法正常工作。任何人都可以帮助我吗?

这里是代码:

$('#text-box1').hover(function() {
     $('#text-box1').text("The text changed!");
}, function() {
     $('#text-box1').text("The previous Text");
});

1 个答案:

答案 0 :(得分:0)

您需要知道是否有一些超时工作并先停止它。这是您的解决方案:

$(function(){
    var to;
    var $tb1 = $('#text-box1');

    $tb1.on('mouseenter', function(){
        if( to !== undefined ) return;
        var $this = $(this);
        to = setTimeout(function(){
            $this.text('The text changed!');
            to = undefined;
        }, 500);

    }).on('mouseleave', function(){
        if( to !== undefined ) return;
        var $this = $(this);
        to = setTimeout(function(){
            $this.text('The previous Text');
            to = undefined;
        }, 500);
    });
});

Check jsFiddle