我想检测用户何时按下Delete
键并找到了教程here
代码在jsfiddle.net
中效果很好,这就是链接 - http://jsfiddle.net。
我将相同的代码复制到我的计算机上,然后我对它进行了测试,但它没有达到标记。
我在这里发布我的代码:
<html>
<script src="./jquery-1.10.2.min.js"></script>
<body>
<script language="javascript" type="text/javascript">
var specialChars = {
27: "esc", 9: "tab", 32: "space", 13: "return", 8: "backspace", 145: "scroll", 20: "capslock", 144: "numlock",
19: "pause", 45: "insert", 36: "home", 46: "del", 35: "end", 33: "pageup", 34: "pagedown",
37: "left", 38: "up", 39: "right", 40: "down", 109: "-",
112: "f1", 113: "f2", 114: "f3", 115: "f4", 116: "f5", 117: "f6",
118: "f7", 119: "f8", 120: "f9", 121: "f10", 122: "f11", 123: "f12", 191: "/"
};
function chromeKeyPress(i,e){
e.type="chromekeypress";
e.which = 0;
handleKey(e);
}
function handleKey(e) {
$("#r").html($("#r").html() + "\n" +
e.type + "\n" +
" which: " + e.which + " == " + String.fromCharCode(e.which) + "\n" +
" keyCode: " + e.keyCode + " == " + String.fromCharCode(e.keyCode) + "\n" +
"");
}
$("textarea").keydown(function(e) {
if (specialChars[e.keyCode])
{
$("textarea").trigger("chromekeypress", e);
$("textarea").unbind("keypress");
setTimeout(function(){ $("textarea").bind("keypress", handleKey); },10);
}
});
$("textarea").keypress(handleKey);
$("textarea").bind("chromekeypress", chromeKeyPress);
</script>
<textarea></textarea>
<pre id="r"></pre>
</body>
</html>
我关联了jquery
,jquery-1.10.2.min.js
。
我的javascript
代码有什么问题。
答案 0 :(得分:3)
您可以将代码包装在DOM ready handler $(document).ready(function() {....});
或更短的$(function) {...});
中,以确保在执行jQuery代码之前已正确加载所有DOM元素:
$(function() {
// Your jQuery code here
});
您的代码适用于jsFiddle
,因为当您从jsFiddle
答案 1 :(得分:0)
将您的代码放入准备好的事件
$( document ).ready(function() {
// Handler for .ready() called.
});