pie*_*ara 0 javascript jquery dom socket.io
我正在访问http://socket.io/get-started/chat/上的socket.io教程,但我的问题是当我发送消息时页面重新加载而不是持久化.
唯一的区别是我使用纯DOM而不是像教程中那样使用jquery.这是原始代码:
<script src="https://cdn.socket.io/socket.io-1.2.0.js"></script>
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
<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>
Run Code Online (Sandbox Code Playgroud)
这是我的:
<script src="https://cdn.socket.io/socket.io-1.2.0.js"></script>
<script>
var socket = io();
document.querySelector('form')
.addEventListener('submit', function () {
socket.emit('chat message',
document.querySelector('#m').value);
document.querySelector('#m').value = '';
return false;
});
socket.on('chat message', function (msg) {
var li = document.createElement('li');
document.querySelector('#messages').appendChild(li);
li.innerText = msg;
});
</script>
Run Code Online (Sandbox Code Playgroud)
如果我用jquery替换我的,它就像一个魅力.任何人都可以看到问题出在哪里?
使用preventDefault,return false不起作用addEventListener
document.querySelector('form').addEventListener('submit', function (e) {
socket.emit('chat message', document.querySelector('#m').value);
document.querySelector('#m').value = '';
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1052 次 |
| 最近记录: |