2016-05-10 17 views
0

Sir, ich bin neu in jquery.Ich habe eine Chat-App.Es gibt zwei Seiten.ine für ausgewählte Konversationen.Wenn Sie eine Konversation.Senden Sie die Conversation-ID auf 2. Seite.in der 2. Seite.Laden Nachrichten entsprechend der Konversation.Jquery Keypress Keydown Fehler

<li id="1"> conversation 1 </li> 
<li id="2"> conversation 2 </li> 



$('li').click(function() { 
    var groupid = this.id; 
    $.ajax({ 
     type: 'get', 
     url: 'getmessages.php', 
     data: 'groupid=' + groupid, 
     dataType: 'html', 
     success: function(r) { 
      $('#output').html(r); 
     } 
    }); 
}); 

In 2n Seite (getmessages.php) holen Nachrichten mit php.and neue Nachricht

$('#sendbutton').click(function(){ 
// send message 
}); 

Auch wenn ich für Nachrichtensendecode senden klicken Taste 'Enter'.

$(document).keypress(function(e){ 
alert('test') ; //this alert is for test 
If(e.which ==13){ // send message 
} 
}); 

Sendbutton Klickfunktion funktioniert. Aber in der Tastendruckfunktion, wenn wir Konversation zweimal klicken (auf der ersten Seite), senden Sie Nachricht zweimal, wenn Sie Enter drücken. (Erscheinen "Test" Warnung zweimal). Wenn Sie dreimal klicken, senden Sie die gleiche Nachricht dreimal und so weiter. Wie behebe ich das? Vielen Dank im Voraus

Antwort

0

Da "Enter" gedrückt wird, wenn der Fokus auf einer Schaltfläche ist, löst das "Klick" -Ereignis nativ aus. Sie erhalten auch ein "keypress" -Ereignis und lösen das "click" -Ereignis erneut aus.

+0

Thanks.do Sie wissen, wie Sie Li beim Klicken deaktivieren. $ (this) .off(); Arbeiten. Aber nur für 1. li. Wenn Sie auf 2. li klicken, sollte 2. deaktiviert sein und 1. sollte aktiviert sein. Und so weiter. Ich muss verhindern, klicken Sie zweimal die gleiche Zeit li –

+0

Wie wäre es ersetzen 'keypress' mit' keydown'? –

Verwandte Themen