我正在构建一个模拟按键事件的函数,并采用了SO here的方法。
所以我用两个关键代码的参数和它应该触发的时间来写这个。
function keypress_sim(key_code1, key_code2, time){
var key = 0;
var rand_proxy = Math.floor(Math.random() * 2) + 1;
if(rand_proxy == 1){
key = key_code1
} else {
key = key_code2
};
var e = $.Event("keypress",{
keyCode: key
});
var fire = time;
setTimeout($(document).trigger(e), fire);
$("<div></div>").appendTo('body').text(key);
$("<div></div>").appendTo('body').text(fire);
}
keypress_sim(101,105,100,1500);
这在a)中不起作用如果我把它放在一个区间中,它仍然只运行一次而b)它返回一个&#34;未知标识符&#34;错误。 我希望这个功能用于&#34;测试运行&#34;我在Jquery写的一些任务,而不是自己做所有的按键。
我的错误在哪里?
答案 0 :(得分:1)
此:
setTimeout($(document).trigger(e), fire);
应该是这样的:
setTimeout(function() { $(document).trigger(e) }, fire);
前者调用函数并将返回值作为参数传递给setTimeout
,后者将setTimeout
函数作为参数传递。