如何在短时间内记录按键/键盘事件?

时间:2016-02-09 16:01:29

标签: javascript jquery keyboard

我在Javascript编写心理学实验,只需要在一段时间内录制按键。我现在花了四个小时谷歌搜索,仍然无法弄清楚如何做到这一点,甚至是不优雅的。

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

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

如果我通过鼠标点击按钮(添加监听器事件?)让人们做出回应,我认为这会更容易,但是:

  • 我无法通过鼠标点击收集回复;

  • 我无法想象如何在文档中添加/分离侦听器(可能是 这不是问题)

同事通过在实验的每次迭代/试验中重新加载页面来实现这一目标,但这不是我的选择。

有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:2)

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);

答案 1 :(得分:0)

$( yourelement ).on( "keypress", function() {
   //do something
});

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