我不知道我做错了什么。以下代码只是我试过的随机狗屎的最新迭代:
<!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');
});
答案 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!');
}
});
检查以下小提琴: