加载新对象时附加DOM问题

时间:2011-06-03 02:24:15

标签: jquery

我有一个实时点击功能,它会获得一堆消息并加载它们。问题是,之后我想在消息加载到该框后,在底部框中添加一个链接但是在加载消息之后,它会在它们之前附加链接。有人看到我的代码有什么问题吗?我认为,因为消息首先被附加,所以它们在DOM中更早排名,即使它们已经消失了。

$('#reply').live('click', function() {
    var id='somevalue';

    //load messages
    $.getJSON(files+"loader.php?action=view&load=replies&reply_chunk_id="+id+"&topic_id="+topic_id+"&username="+username+"&t=" + (new Date()), function(json) {                                                                     
        var html = '';

        for(i=0; i < json.length; i++) {
            html += prepare(json[i]);
        }

        $('div[chunk_id="'+id+'"]').append(html).find('li').fadeIn(3500);

    });  
    //link
    $('div[chunk_id="'+id+'"]').append('<a chunk_id="'+id+'" id="scroll_value" value="stop_scroll">Test</a>');
}

1 个答案:

答案 0 :(得分:1)

问题是$.getJSON不是同步请求,所以发生的是您发送ajax请求,然后立即附加链接,然后当AJAX请求返回时,消息是链接后加载。

将您的链接附加到AJAX回调中以解决此问题。