我想点一个名为“更快”的javascript函数。每当按下句号键时。我首先尝试了一种适用于其他键的方法:
document.onkeydown = function(evt) {
evt.preventDefault();
evt = evt || window.event;
switch (evt.keyCode) {
case 190:
faster();
break;
}
};
我也尝试使用代码46,但仍然没有运气。一篇帖子说Mac键盘不太可靠,建议使用onkeypress而不是onkeydown。我无法找到一个直接相关的例子,但我试过了:
的JavaScript
periodetect () {
var c = e.which || e.keyCode;
if (c=46) {
faster();
}
};
HTML
<BODY BGCOLOR="#CCCCCC" onkeypress="periodetect()">
任何人都可以发现我的初学者错误或建议替代方案吗?
答案 0 :(得分:2)
这可能是您正在寻找的解决方案:
需要jquery 1.9.x或更高版本
$(document).bind('keydown',function(e){
if(e.keyCode == 190) {
alert("you pressed .");
}
});
当您按下“期间键”并显示提醒时,如果您希望使用某个功能,只需将alert("you pressed .");
替换为faster();
答案 1 :(得分:0)
事实证明,keydown
似乎是正确的用法。事实证明keyCode
在我的答案评论中给出的OP代码中没有大写,但 在问题中正确大写。以下示例做现在我已经改变了第一个。
看看这个:onKeyPress Vs. onKeyUp and onKeyDown
document.onkeydown = function(evt) {
evt.preventDefault();
evt = evt || window.event;
switch (evt.keyCode) {
case 190:
faster();
break;
}
};
编辑添加:有人可以在Mac上测试此代码吗?
<!DOCTYPE html>
<html>
<head>
<title>Stack Overflow Tester</title>
<style type="text/css">
</style>
<script type="text/javascript">
//<![CDATA[
document.onkeydown = function(evt) {
evt.preventDefault();
evt = evt || window.event;
switch (evt.keyCode) {
case 190:
alert("Faster!");
break;
}
};
//]]>
</script>
</head>
<body>
<p>Stack Overflow Test; press the period.</p>
</body>
</html>