2016-05-10 4 views
0

私はjquery.Iにチャットしていますapp.thereには2つのページがあります。選択したconversations.ifを1つの会話をクリックしてください.2番目のページに会話IDを送信してください。会話に従ったメッセージ。 2Nページ(getmessages.php)でJquery keypress keydownエラー

<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); 
     } 
    }); 
}); 

は、使用してメッセージを取得php.and

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

を使用して、新しいメッセージを送信するキー「を入力します」をクリックしたときにも、私は、送信メッセージのためのコードを持っています。

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

送信ボタンクリック機能。しかし、keypress機能では、会話を2回(第1ページ目)クリックすると、enterをクリックするとメッセージが2回送信されます( 'test'アラートを2回表示)。 3回クリックすると同じメッセージが3回送信されます。 事前にthis.thanksを修正するには

答えて

0

フォーカスがボタンにあるときに「Enter」を押すとネイティブに「クリック」イベントが発生するため、また、 "keypress"イベントが発生し、そこから "click"イベントが再度トリガーされます。

+0

ありがとうございます。クリックするとliを無効にする方法を知っています。 $(this).off();ワーキング。しかし、1st li only.ifをクリックすると、2nd liは無効になり、1stが有効になります。それでは、クリックリを同じ時間に2回防ぐ必要があります。 –

+0

'keypress'を' keydown'に置き換えるのはどうですか? –

関連する問題