我正在尝试做一个简单的JQuery slidein-slideout divs,其中每个div滑入,等待让我们说1秒,然后滑出以便下一个div滑入。
一切正常但我的问题是我不能让div在滑动之前等待一段时间。请查看小提琴链接http://jsfiddle.net/47vzx/。
我尝试执行以下操作:
if(i<datalength)$('#paneldata').slideDown(2000,i==bdatalength?null:setTimeout(_callee,1000));
但无法使其发挥作用 谢谢
答案 0 :(得分:1)
使用:arguments.callee
代替,在函数内部。
var _callee = arguments.callee;
if (i < datalength) $('#paneldata').slideDown(2000, function () {
if (i != bdatalength) _callee();
});
答案 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