Keydown event Jquery node js?



我正在尝试使用聊天应用程序,并且正在学习在nodejs中使用socket.io。现在,我已经能够在用户按下键盘上的任何键时显示"打字消息"。但是,假设当用户停止键入或单击输入按钮发送消息时,我想调用键或键释放事件。我尝试了以下内容,但它似乎没有改变我的<em>标签中的文本。即使在用户按下发送后,它仍会显示"用户正在键入"。

message.addEventListener('keypress', function(){
socket.emit('typing', handle.value);
});
message.addEventListener('keyup', function(){
feedback.innerHTML = '<p><em></em></p>';
});

socket.on('typing', function(data){
feedback.innerHTML = '<p><em>' + data + ' is typing a message...</em></p>';
});

您可以使用setTimeout函数。因此,当用户停止键入时,该事件将在 500 毫秒后触发,您可以在后端正确处理它。当用户开始键入时,timeout将被清除,事件stopped typing将不会发送到后端。

我提供了带有上述想法的代码。

var timeout;
$("#input").keyup(function() {
timeout = setTimeout(function(){ socket.emit("stopped typing") }, 500);
});
$("#input").keydown(function() {
clearTimeout(timeout);
});

最新更新