如何在短时间内记录关键 presses/keyboard 事件?
How to log key presses/keyboard events for a short period of time?
我正在 Javascript 编写一个心理学实验,只需要记录特定时间段内的按键操作。我已经花了四个小时在谷歌上搜索,但仍然无法弄清楚如何做到这一点,即使是不优雅的。
我使用以下方式读取键盘事件:
$(document).keydown(function (event) { ...... }
我认为如果我让人们通过鼠标单击按钮做出响应(添加一个侦听器事件?)会更容易,但是:
我无法通过鼠标点击收集回复;
我不知道如何 add/detach 文档的侦听器(也许
这不是问题)
同事通过在每个 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
我正在 Javascript 编写一个心理学实验,只需要记录特定时间段内的按键操作。我已经花了四个小时在谷歌上搜索,但仍然无法弄清楚如何做到这一点,即使是不优雅的。
我使用以下方式读取键盘事件:
$(document).keydown(function (event) { ...... }
我认为如果我让人们通过鼠标单击按钮做出响应(添加一个侦听器事件?)会更容易,但是:
我无法通过鼠标点击收集回复;
我不知道如何 add/detach 文档的侦听器(也许 这不是问题)
同事通过在每个 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