使用JQuery在1秒后切换div而不是立即切换?

时间:2011-03-22 11:56:01

标签: jquery toggle delay

下面的代码几乎是完美的,正是我需要它来阻止一件小事。当我点击我的小按钮时,div直接切换,有没有办法在1秒之后切换这些div?

测试网址:http://www.eirestudio.net/hosting-files/here/index.htm

$('#featured li.block a.click_button:odd').css('display', 'none');

var isAnimating = false;
$('a.buttons').click(function()
{
    if(!isAnimating) {
        isAnimating = true;
        setTimeout("isAnimating = false", 2000)

            $('#featured li.block a').toggle();

            var f = function($this, count)
            {
                $this.animate({ 
                    bottom: "-=200"
                }, 60, function() {
                    $this.css('bottom', '250px').animate({
                        bottom: "-=185px"
                    }, 60, function() {
                        if (count > 0) {
                            count = count - 1;
                            f($this, count);
                        }
                    });
                });
            };

            $('#featured li.block div').each( function(i) 
            {
                var $this = $(this);
                setTimeout( function() 
                {
                    f( $this, 12 );
                }, i*120 ); // the ith div will start in i*100ms
            }).toggle();

    }
    else {
        e.preventDefault();
    }
});

E * DIT:基本上,当我点击按钮时,动画应立即开始,同时动画(1秒钟说)然后切换div .. *

4 个答案:

答案 0 :(得分:1)

将您的整个动画代码放在一个新函数中,比如animate()。然后:

$('a.buttons').click(setTimeout(animate, INTERVAL));

适应您的情况:)

答案 1 :(得分:1)

使用jQuery delay function

$('a.buttons').click(function(e){$('#theDiv').delay(1000).toggle(); return false;});

答案 2 :(得分:1)

使用Greg B的答案,试试:

$('#featured li.block div').each(function(i) {
    var $this = $(this);
    setTimeout(function() {
        f($this, 12);
    }, i * 120); // the ith div will start in i*100ms
    $this.delay(1000).toggle();
});

答案 3 :(得分:1)

这应该解决问题。

    setTimeout(function(){
        $('#featured li.block div').toggle();
    }, 1000);   

因为如果我正确理解了问题,你希望卷轴与当前动画一起旋转,但是在一秒之后图像切换,而不是旋转而不是旋转。如果您移除其他切换开关并将切换器置于超时时间,则应获得所需的效果。

jsfiddle上的代码示例。