我需要调用函数:
按住键的每一秒(例如,按住 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/
谢谢你的帮助!