2012-01-14 37 views
0

我想从配置的jQuery $阿贾克斯()返回的数据...

我的例子是这样的:

首先我用笨框架(只是关注)

现在阿贾克斯我打电话函数返回的div组

EXP:

通过js代码
function my_function() { 
    for($i = 0; $i < 3; $i++) { 
     print '<div class="block">'.$i.'</div>'; 
    } 
} 

现在:

$.ajax({ 
    type: "POST", 
    url: "path/to/my_function", 

    success: function(data){ 
     $('#div#container').html(data); 
    } 
}); 

现在所有的div(3周的div块类)都出现在同一时间。(我不喜欢这样)

我想过去三年股利每一个相继出现(含了slideDown例如) 现在我的具体问题是: 如何通过循环配置由ajax返回的数据例如?????为每个div使用slideDown?

+0

您能否重新阅读您的问题并以更好的英文结构。我很难理解你的问题。 – 2012-01-14 18:26:01

回答

0

您要为每个格设置一旦对方已如果你想要一个div来后,其他显示已完成火滑下功能。您可以构建一个递归函数,以便您可以动态设置索引以特定值开始和结束。当然,你的div id必须正确命名,所以你可以做这样的事情。

function doSlideDown(startIndex, endIndex){ 
    $('div#container'+startIndex).slideDown(500, function(){ 
     if(startIndex < endIndex){ 
      doSlideDown(startIndex+1, endIndex); 
     } 
    }); 
} 

$.ajax({ 
type: "POST", 
url: "path/to/my_function", 

success: function(data){ 
    $('div#container1').html(data); 
    $('div#container2').html(data); 
    $('div#container3').html(data); 

    doSlideDown(1,3); 
} 
}); 

这将确保只有一个DIV同时滑出。

+0

你的脚本很棒,但是对于静态的div数量,我想要一个div在另一个div之后显示,但是对于动态数量的div(未知数),你能帮忙吗? – Mahmoudco 2012-01-14 19:58:18

+0

其他答案不起作用吗?您可以根据结果计算一次完成创建div的数量。 – 2012-01-14 20:23:53

+0

是的,其他的答案是工作,但所有的divs一次出现..无论如何感谢您的有用答案。 – Mahmoudco 2012-01-14 21:21:16

2

添加display:none;最初

function my_function() { 
    for($i = 0; $i < 3; $i++) { 
     print '<div class="block" style="display:none;">'.$i.'</div>'; 
    } 
} 

然后

$.ajax({ 
    type: "POST", 
    url: "path/to/my_function", 

    success: function(data){ 
     $('div#container').html(data); 
      $('div.block').each(function(){ 
      $(this).slideDown(1000); 
     }); 
    } 
}); 
+0

非常感谢。 – Mahmoudco 2012-01-14 18:51:53

+0

你是受欢迎的朋友.. – 2012-01-14 18:52:37