2010-09-15 3 views
0

Привет так на успех на моем AJAX вызова, он присоединяет ответ:jQuery: success, prepend() ONCE?

$("#nowCurrentComment" + bID).prepend(msg); 

Теперь, если вы используете форму, которая выполняет Ajax вызов более одного раза, то первый раз, предваряется оленья кожа удалить, но он просто добавляет новые добавленные msg, кроме этого.

Я хочу затушить старый, если существует, и fadein нового. Является ли это возможным?

Так что я не получить так:

When i pressed the submit button once: 

Comment1 

when i pressed twice: 

Comment1Comment1 

ответ

3

Конечно, просто не предварять содержание. Вместо этого включите подэлемент.

Так что, если ваш DOM был ...

<div id="nowCurrentComment123"> 
    <span class="message"></span> 
</div> 

Тогда ваш сценарий будет ...

var $msg = $("#nowCurrentComment123").find('.message'); 
// if it already has a message, fade it out, add the text, then fade it back in 
if ($msg.text().length) { 
    $msg.fadeOut('fast', function(){ 
    $msg.text(msg).fadeIn('fast'); 
    }); 
} else { 
    // otherwise just hide it, add the text, and then fade it in 
    $msg.hide().text(msg).fadeIn('fast'); 
}