如何防止在setInterval()上显示:first

时间:2013-05-31 07:51:06

标签: jquery

我面临两个问题

1)我使用以下代码隐藏所有元素,但仅显示.ticker a:first

$.each($('.ticker a'), function(){
    $(this).hide();
    $('.ticker a:first').show();
});

这样可行,但问题是每当我使用下面的函数动画自动收报机时它会再次显示.ticker a:first

function ticker(){
    $.each($('.ticker a'), function(){
        $(this).slideUp();
    });
    $('.ticker a:first').slideUp(function() {
        $(this).appendTo($('.ticker')).slideDown();
    });

}
setInterval(ticker, 2000);

2)在.wrapper期间动画slideDown() div闪烁的同时。我该如何防止这种情况?

这是fiddle

1 个答案:

答案 0 :(得分:2)

这段代码不好:

$.each($('.ticker a'), function(){
    $(this).hide();
    $('.ticker a:first').show();
});

你想要的是:

$('.ticker a').hide().filter(':first').show();

对于股票代码功能本身:

function ticker(){
    $('.ticker a').first().appendTo($('.ticker')).slideUp().end().end()
                  .filter(':first-child').slideDown();
}

<强> Updated fiddle