Ich baue ein Chat-System wie Facebook. Ich möchte nur Daten, die mit einem bestimmten Benutzer verknüpft sind, in die angezeigte Benutzerbox laden. Genau wie bei Facebook erscheint eine Chat-Box, wenn jemand auf den Namen des Benutzers in der Benutzerliste in der Seitenleiste klickt (Ich hoffe, dass es Sinn macht). Alles funktioniert gut, aber wenn ich versuche, Daten zu holen, "wiederholen" sich die Daten. Hier sind meine Codes zum Öffnen der Chatbox und zum Abrufen der Daten.Stop ajax vom Refetching Daten
$('li.user').click(function(){
id = $(this).data('id');
_status = $(this).data('status');
username = $(this).data('username');
_return = false;
$('.chat .chat-boxes .box').each(function(){
if($(this).data('id') == id){
$(this).find('.box-footer .textarea').focus();
_return = true;
}
});
if (_return){
return
};
$('.chat').find('.chat-boxes').append(box.format(id,_status,username));
$('.box').each(function(){
_boxBody = $(this).find('.box-body');
_messagesBox = $(this).find('.messages');
_id = $(this).data('id');
_messagesBox.append('This is Box #'+_id);
$.ajax({
type: 'POST',
url: base+'chat/getMessages.php',
data: {'user2' : _id},
cache: false,
dataType: 'json',
beforeSend: function(){$('.box-body-top').html('Loading...')},
success: function(res){
if(res.success){
}
else if(res.fail){
}
}
});
});
});
Was meinst du mit 'Wiederholen'? Es ist ein bisschen kritisch. –
Zum Beispiel die Zeile _messagesBox.append ('Dies ist Box #' + _ id); Wenn ich einmal auf den Benutzer klicke, fügt er hinzu, sagen wir Dies ist Box # 12 Wenn ich auf einen anderen Benutzer klicke, fügt er 'This is Box # 12This is Box # 12' (zweimal) an. Und der Zyklus geht weiter –