需要帮助理解 Socket.io(node.js) 中的以下 jQuery 代码?
Posted
技术标签:
【中文标题】需要帮助理解 Socket.io(node.js) 中的以下 jQuery 代码?【英文标题】:Need help understanding the following jQuery code in Socket.io(node.js)? 【发布时间】:2015-08-30 22:12:25 【问题描述】:html 文件
<script>
var socket = io();
$('form').submit(function()
socket.emit('chat message', $('#m').val());
$('#m').val('');
return false;
);
socket.on('chat message', function(msg)
$('#messages').append($('<li>').text(msg));
);
</script>
io.on( "connection", function(socket)
console.log( "A user connected" );
socket.on('disconnect', function()
console.log('user disconnected');
);
socket.on('chat message', function(msg)
console.log('message: ' + msg);
);
socket.on('chat message', function(msg)
io.emit('chat message', msg);
);
);
我不明白jQuery语法中的这部分代码:
$('#m').val('');
return false;
既然我已经通过socket.emit('chat message', $('#m').val());
发送我的套接字输入值,为什么输入字段“m”(它只是我表单中的一个输入字段)需要设置为空字符串?然后返回 false 部分之后?代码运行良好,来自socket.io/chat
请解释一下jQuery方面。
【问题讨论】:
$('#m')
听起来像聊天输入消息框。发送消息后将其设置为空是有意义的。 return false
阻止 <form>
元素提交
【参考方案1】:
逐行看:
socket.emit('chat message', $('#m').val());
此行以#m
字段中指定的值发送聊天消息。
$('#m').val('');
消息发送后,此行清除#m
字段中的值。
return false;
返回 false 会停止默认事件行为,在这种情况下会阻止 form
元素提交。如果您愿意,也可以在传入的event
上使用preventDefault()
。
【讨论】:
以上是关于需要帮助理解 Socket.io(node.js) 中的以下 jQuery 代码?的主要内容,如果未能解决你的问题,请参考以下文章
STOMP 上的重复事件 Socket.io 和 Node.js
如何使用 Node JS 服务器在 Socket.io 中进行一对一聊天?