【问题标题】:Trouble fading divs with .each() function after ajax request?ajax 请求后使用 .each() 函数淡化 div 有问题吗?
【发布时间】:2013-11-26 04:37:25
【问题描述】:

目前,我的 div 在页面加载时一一加载。绝对没问题!虽然当我发出 ajax 请求然后 append(data) 到同一个容器时,我的代码然后循环遍历页面上的所有 div 而不是新添加的 div?

我的问题是:如何仅对新添加的 ajax 成功数据执行相同的 .each() 效果?

jQuery:

success: function(data){
    $('#profileLinks').append(data);  

    $('.eachLink').each(function(i) {
        $(this).fadeOut(0).delay(100*i).fadeIn(500);
    }); 

} 

HTML:

<div id="profileLinks" class="floatLeft">
    <div class="eachLink floatLeft">Div 1</div>
    <div class="eachLink floatLeft">Div 2</div>
</div>

【问题讨论】:

    标签: jquery html css ajax each


    【解决方案1】:

    您可以尝试删除类属性:

    success: function(data){
        $('#profileLinks').append(data);  
    
        $('.eachLink').each(function(i) {
            $(this).removeClass(".eachLink");
            $(this).fadeOut(0).delay(100*i).fadeIn(500);
        }); 
    
    } 
    

    【讨论】:

    • 不幸的是,这根本没有排序任何东西
    【解决方案2】:
    var $data = $(data);
    $data.find(".eachLink").addClass("not-animated-yet").appendTo("#profileLinks");
    $(".eachLink.not-animated-yet").each(/* your animation function */);
    

    【讨论】:

    • 可能只有我,但这不起作用。我应该把它放在括号之间吗$(this).fadeOut(0).delay(100*i).fadeIn(500);
    • @learn 您不仅需要将其包装在这些括号中,还需要将其包装在 function () {}
    • 我也试过了,但运气不好,开发者工具也没有任何错误。
    • @learn 并非没有看到整个代码在运行。也许设置一个jsfiddle?
    • 抱歉,不确定如何让 js 在 jsfiddle 上运行。没时间折腾了!你看不到它们会阻止你的代码工作吗?
    猜你喜欢
    • 2011-07-09
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    相关资源
    最近更新 更多