我有一个实时点击功能,它会获得一堆消息并加载它们。问题是,之后我想在消息加载到该框后,在底部框中添加一个链接但是在加载消息之后,它会在它们之前附加链接。有人看到我的代码有什么问题吗?我认为,因为消息首先被附加,所以它们在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>');
}
答案 0 :(得分:1)
问题是$.getJSON
不是同步请求,所以发生的是您发送ajax请求,然后立即附加链接,然后当AJAX请求返回时,消息是链接后加载。
将您的链接附加到AJAX回调中以解决此问题。