1

我正在尝试做一个简单的 JQuery slidein-slideout div,其中每个 div 滑入,等待让我们说 1 秒,然后滑出以便下一个 div 滑入。

一切正常,但我的问题是我不能让 div 在向上滑动之前等待一段时间。请检查小提琴链接http://jsfiddle.net/47vzx/

我尝试执行以下操作:

if(i<datalength)$('#paneldata').slideDown(2000,i==bdatalength?null:setTimeout(_callee,1000));

但无法使其工作谢谢

4

2 回答 2

1

通过使用 :arguments.callee代替,在函数内部。

var _callee = arguments.callee;

if (i < datalength) $('#paneldata').slideDown(2000, function () {

        if (i != bdatalength) _callee();
});

更新的小提琴

于 2013-06-05T11:11:09.687 回答
1

尝试在 slideUp 调用之前添加一个.delay()

i=-1; 
$data = $('#panel .data');
datalength = $data.length-1;
bdatalength = datalength-1; 
$panel = $('#panel').fadeIn(1000,_callee = function(){
    $('#paneldata').delay(i < 0 ? 0 : 2000).slideUp(2000,function(){
        $(this).html( $($data[++i]).html() )});
    if(i<datalength){
        $('#paneldata').slideDown(2000,i==bdatalength?null:_callee);
    }
});

演示:小提琴

于 2013-06-05T11:24:46.313 回答