【问题标题】:Need help understanding the following jQuery code in Socket.io(node.js)?需要帮助理解 Socket.io(node.js) 中的以下 jQuery 代码?
【发布时间】: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 阻止 &lt;form&gt; 元素提交

标签: javascript jquery node.js socket.io


【解决方案1】:

逐行看:

socket.emit('chat message', $('#m').val());

此行以#m 字段中指定的值发送聊天消息。

$('#m').val('');

消息发送后,此行清除#m字段中的值。

return false;

返回 false 会停止默认事件行为,在这种情况下会阻止 form 元素提交。如果您愿意,也可以在传入的event 上使用preventDefault()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多