Jquery keypress无法使用socket.io

时间:2015-10-07 20:52:40

标签: javascript jquery node.js socket.io hogan.js

我不知道我做错了什么。以下代码只是我试过的随机狗屎的最新迭代:

<!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来检测按钮按下并显示警告是无关紧要的。我甚至没有使用任何套接字事件。当我运行服务器时一切正常,但是当我按下输入时没有任何反应。这是我的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 个答案:

答案 0 :(得分:1)

html文件中缺少</head><body>

我更新了,它对我有用:

<!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>

答案 1 :(得分:0)

更新您的jquery版本使用:

<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>

同时删除不必要的$(文档).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/