添加更多产品时追加vs appendTo

时间:2014-08-13 14:23:05

标签: jquery append appendto

以下代码在执行ajax调用后执行(当用户在浏览器中向下滚动时加载)。使用append()时,它可以正常工作,但不能使用appendTo。 为什么?我想使用appendTo的原因是我想对加载到div中的新产品使用fadeIn()效果。

这有效:

nextProducts.done(function(data) {                  
    $('.products-display').append(data);

    //Using setTimeout as technique because settimeout will always
    //put the function at bottom of the call stack (so above data
    //has been appended now)
    setTimeout(function() { 
        product_offset = parseInt($('.outfit-item.product').length);                               
        $('.products-display').attr('data-currentoffset', product_offset);                            
    }, 1);      
});   

但不是这个(没有添加产品,没有任何反应,并且没有给出console.log中的错误)

nextProducts.done(function(data) {                  
    $( data ).appendTo( ".products-display" );
    //Using setTimeout as technique because settimeout will always
    //put the function at bottom of the call stack (so above data
    //has been appended now)
    setTimeout(function() { 
        product_offset = parseInt($('.outfit-item.product').length);                               
        $('.products-display').attr('data-currentoffset', product_offset);                            
    }, 1);      
});   

数据值是json。也许这就是问题?

2 个答案:

答案 0 :(得分:1)

$( data ).appendTo是问题所在。

从文档:"另一方面,使用.appendTo(),内容在方法之前,作为选择器表达式或动态创建的标记,并将其插入目标容器中。 "

换句话说, data 必须是一个html元素或html标记,它将被插入到另一个元素中。

答案 1 :(得分:1)

尝试执行$(array).appendTo('.foo') 错误。

Uncaught TypeError: Cannot read property 'ownerDocument' of undefined

你可以通过以下方式解决这个问题:

$(array.join('')).appendTo('.foo');