2016-05-10 5 views
0

Сэр, я новичок в jquery.I имеет чат app.there two pages.ine для выбора conversations.if нажмите один chat.it отправить идентификатор разговора на 2-й странице.in 2-ой страницы.load сообщений в соответствии с разговором.JQuery keypress keydown error

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

В 2n странице (getmessages.php) выборки сообщений с помощью php.and отправить новое сообщение, используя

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

Также у меня есть код для отправки сообщения, когда нажмите «введите» ключ.

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

Sendbutton click функция работает. Но в функции нажатия клавиш, если мы дважды нажимаем диалог (на первой странице), он дважды посылает сообщение, когда нажимают кнопку «Ввод». (Дважды нажмите «тест»). Если вы нажмете 3 раза, отправьте такое же сообщение 3 раза и так далее. Как исправить это. Спасибо заранее

ответ

0

Поскольку нажатие «Enter», когда фокус находится на кнопке, инициирует событие «щелчок» изначально. Вы также получаете событие «keypress», и из этого вы снова запускаете событие «click».

+0

Спасибо. Вы знаете, как отключить ли на клик. $ (Это) .off(); за работой. Но для 1-го li only.if нажмите 2nd li, 2-й должен быть отключен, а 1-й должен быть включен. И так on.I нужно предотвратить щелчок li дважды в то же время –

+0

Как насчет замены 'keypress' на' keydown'? –

Смежные вопросы