【问题标题】:How I handle returned data from $.ajax()?我如何处理从 $.ajax() 返回的数据?
【发布时间】:2014-01-05 02:17:20
【问题描述】:

我正在尝试通过 jQuery 配置从 $.ajax() 返回的数据...

我的例子是这样的:

首先我使用的是 codeigniter 框架(只是为了引起注意)

现在通过 ajax 我正在调用返回一组 div 的函数

exp:

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

现在通过js代码:

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

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

现在所有 div(3 个带有块类的 div)同时出现。(我不喜欢那样)

我希望最后三个 div 中的每一个都按顺序出现(例如使用 slideDown) 现在我的具体问题是: 例如,我如何配置 ajax 通过循环返回的数据????为每个 div 使用 slideDown??

【问题讨论】:

  • 请您重新阅读您的问题并用更好的英语组织它。我很难理解你的问题。

标签: jquery


【解决方案1】:

最初添加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);
         });
    }
});

【讨论】:

    【解决方案2】:

    如果您希望一个 div 在另一个之后显示,则在另一个 div 完成后触发每个 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。

    【讨论】:

    • 您的脚本很棒,但是对于 div 的静态数量,我希望一个 div 在另一个之后显示,但是对于 div 的动态数量(未知数字),您能帮忙吗?
    • 其他答案不起作用吗?根据结果​​创建 div 后,您可以计算 div 的数量。
    • 是的,其他答案可行,但所有 div 都会同时出现。无论如何,谢谢您的有用回答。
    • 在所有三个容器中不会显示相同的 3 个 div 三次吗??
    猜你喜欢
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 2018-05-13
    • 2014-08-15
    相关资源
    最近更新 更多