如何在短时间内记录关键 presses/keyboard 事件?

How to log key presses/keyboard events for a short period of time?

我正在 Javascript 编写一个心理学实验,只需要记录特定时间段内的按键操作。我已经花了四个小时在谷歌上搜索,但仍然无法弄清楚如何做到这一点,即使是不优雅的。

我使用以下方式读取键盘事件:

$(document).keydown(function (event) {  ...... }  

我认为如果我让人们通过鼠标单击按钮做出响应(添加一个侦听器事件?)会更容易,但是:

同事通过在每个 iteration/trial 实验中重新加载页面来完成此操作,但这对我来说不是一个选项。

有人可以帮我吗?

jQuery 允许您在事件名称后缀命名空间(在一段时间后),允许它唯一标识事件处理程序,以便以后使用完全相同的名称删除。

您需要改用on

// Use on with a namespaced event
$(document).on('keydown.mytest', function (event) {
   // record keys
});

// After 5 seconds...    
setTimeout(function(){
    // turn off the specific keydown event we registered above
    $(document).off('keydown.mytest');
}, 5000);
$( yourelement ).on( "keypress", function() {
   //do something
});

setTimeout(function(){ 
    $( yourelement ).off( "keypress" ); 
}, 3000); //time out after 3 seconds