2013-02-07 64 views
3

我有一個div「內容」,在這個div中我有幾個div「評論」,我每5秒重新加載div「content」,並且我想淡入每一個新的評論。爲此,每個評論都有一個整數的ID,所以基本上我在做的是: 我將最後一條評論的id保存在變量「lastComment」中,當我重新加載div時「content 「,我用if($(」。comment「)。attr(id)> lastComment){alert('ok')}jquery new div fadIn通過重新加載一個div

但它不起作用,首先它重新加載div,而不是直接說'好',我需要等5秒鐘,這裏我的代碼:

var lastComment = $('.comment:last').attr('id'); 
setInterval(function() 
{ 
    $('#content').load('fullscreen.php?image='+$('.imageBig').attr('id')+' #content'); 
    if($('.comment').attr('id') > lastComment){ 
     alert('ok'); 
    } 
}, 5000); 

請任何想法?

+0

您可能不希望爲您的用例使用'.load()',因爲它已經設計爲在AJAX完成時自動更改/刪除HTML元素中的內容。您應該考慮進入低級別,並調用'$ .ajax()'來代替自定義邏輯。 –

回答

1

我覺得這是你的jQuery selector問題,如果條件應指定最後div.comment因爲var lastComment = $('.comment:last').attr('id');語句將這個setInterval作品和新的最後一個div評論後,一旦最後一個元素分配將改變這樣的警報不工作。

var lastComment = $('.comment:last').attr('id'); 
setInterval(function() 
{ 
    $('#content').load('fullscreen.php?image='+$('.imageBig').attr('id'),function(){ 
     if($('.comment:last').attr('id') > lastComment){ 
      alert('ok'); 
     } 
    }); 

}, 5000); 
+1

如果你把'if'語句放在加載回調函數中,那麼它會做他想做的事情,而不必等到加載後5秒鐘) – Archer

+0

@Archer是的,你是對的我忘記了改變那條線。謝謝... –

+0

非常感謝@RohanKumar !!!!!!! –