2010-11-04 1 views
0

Я пытаюсь использовать добавочный контент, чтобы сделать живой канал с помощью jQuery, но моя проблема в том, что он добавляет больше контента, даже если уже есть «< li> </li> что точно так же, как тот, который уже есть ...Добавлять только в том случае, если контент новый

Мой текущий код: http://pastebin.com/yEtSsg90

Было бы замечательно, если бы кто-то мог бы разместить пример-код с комментариями :)

+0

ну, не отправляйте те же данные дважды тогда. –

+0

Не было бы проще добавить чек на 'loadem.php', который только возвращает новый контент? – Alec

ответ

1

Попробуйте, начиная сразу после комментария в строке 12:

repeat = false; 
jQuery('ul#feed li').each(function() { 
    if($(this).text() == data) 
    { 
     repeat = true; 
    } 
}); 

if(!repeat) 
{ 
    jQuery('ul#feed').prepend('<li>' + data + '</li>'); 
} 

он ищет существующий #feed Ли, которые имеют один и тот же текст в качестве данных. Если таковой существует, пропустите добавление данных; иначе добавьте его, как обычно.

+0

Ницца, именно то, что я искал! Большое спасибо! –

0

Вам нужно чтобы отслеживать, какие записи вы уже добавили. Например, если каждая запись имеет номер идентификатора, вы можете сохранить список всех добавленных идентификаторов или просто самый высокий идентификатор, это они последовательные.

Вы также можете сделать это на стороне сервера. С помощью запроса вы можете передать идентификатор самого высокого идентификатора, который вы добавили, чтобы получать новые записи. Если у вас есть метка времени для каждой записи, вы также можете использовать ее для обработки фильтрации.

0
var exists = false, 
    insertation = 'feedText..'; 

$('li').text(function(index,text) { 
    if(text == insertation) exists = true; 
}); 

if(!exists) //perform the appending