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!');
   }
});

Проверьте следующую скрипку:

http://jsfiddle.net/hacker1211/bk56hg5k/

Другие вопросы по тегам