如何调用'callee'函数

时间:2013-06-05 11:09:44

标签: jquery

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

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

我尝试执行以下操作:

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

但无法使其发挥作用 谢谢

2 个答案:

答案 0 :(得分:1)

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

var _callee = arguments.callee;

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

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

您的Updated Fiddle

答案 1 :(得分: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);
    }
});

演示:Fiddle