【发布时间】:2012-10-14 23:30:49
【问题描述】:
我需要调用函数:
按住键的每一秒(例如,按住 5 秒时,它应该每秒触发 5 次)。
当用户释放密钥 (
keyup) 时,如果不到一秒。
事件应该绑定在文档上,而不是文本输入上。
如果第二个语句“有点”有效,首先我会遇到问题,因为 keypress 事件在某些浏览器上不起作用,并且 keydown 一直触发事件。
var interval;
$(document).on('keypress', function(e) {
console.log('keypress');
interval = setInterval(function() {
doSomething(e.keyCode);
}, 1000);
}).on('keyup', function(e) {
console.log('keyup');
if(interval === 0) {
doSomething(e.keyCode);
}
clearInterval(interval);
interval = 0;
});
function doSomething(keyCode) {
console.log(keyCode);
}
jsFiddle:http://jsfiddle.net/kWFUA/
感谢您的帮助!
【问题讨论】:
-
把
keypress改成keydown:quirksmode.org/dom/events/keys.html
标签: javascript jquery