2011-06-03 20 views
0

我有一個實時點擊的函數,它獲取一堆消息並加載它們。問題是,在此之後,我想在底部框中追加一個鏈接,之後郵件會加載到該郵箱中,但在郵件加載後,會將鏈接附加到該郵件之前。有沒有人看到我的代碼有什麼問題?我想,因爲消息被首先附加,他們早在DOM即使他們中褪色排名。加載新對象時附加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

問題是$.getJSON不是同步的要求,因此正在發生的事情是,你送行ajax請求,然後直接附加鏈接,然後當AJAX請求返回時,消息在鏈接之後加載。

將鏈接追加到AJAX回調中以解決此問題。

+0

非常感謝Alastair,非常感謝。 – Scarface 2011-06-03 03:02:34

+0

@面:我的榮幸。 – 2011-06-03 03:03:45