Jquery не работает с socket.io
Понятия не имею, что я делаю не так. Следующий код - просто самая последняя итерация случайного дерьма, которую я пробовал:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{title}}</title>
<link rel="stylesheet" href="../css/home.css">
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io();
$(document).ready(function() {
$(document).keypress(function(e) {
if (e.which == 13) {
alert('You pressed enter!');
}
});
});
</script>
</body>
</html>
Я использую Firefox. Я опубликую app.js, если это необходимо, но я уверен, что использование jQuery для обнаружения нажатия кнопки и отображения предупреждения не имеет значения. Я даже не использую никаких событий сокетов. Когда я запускаю сервер, все работает нормально, но когда я нажимаю Enter, ничего не происходит. Вот мой app.js:
var express = require('express');
var app = express();
var http = require('http').Server(app);
var path = require('path');
var io = require('socket.io').listen(http);
app.set('views', path.join(__dirname, 'views'));
app.engine('html', require('hogan-express'));
app.set('view engine', 'html');
app.use(express.static(path.join(__dirname, 'public')));
app.get('/', function(req, res){
res.render('index', {title:'test'});
});
http.listen(3000, function(){
console.log('listening on localhost:3000');
});
2 ответа
Отсутствует </head>
а также <body>
в HTML-файл.
Я обновил, и это сработало для меня:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{title}}</title>
</head>
<body>
<link rel="stylesheet" href="../css/home.css">
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io();
$(document).ready(function() {
$(document).keypress(function(e) {
if (e.which == 13) {
alert('You pressed enter!');
}
});
});
</script>
</body>
</html>
Обновите вашу версию jquery:
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
Также удалите ненужные $(document).ready({}); функция.
Используйте следующий код:
$(document).keydown(function (e) {
if (e.which == 13) {
alert('You pressed enter!');
}
});
или используйте это:
$(document).bind("keydown",function (e) {
if (e.which == 13) {
alert('You pressed enter!');
}
});
Проверьте следующую скрипку: