JSFiddle here - 使用console.log()。
window.evtqueue = [];
window.eventHold = function(e){
console.log(e.held);
if (typeof(e.held)==typeof(undefined)){
e.held = 1;
window.evtqueue.push(e);
console.log(e.type+" - "+e.which);
window.setTimeout(function(){
console.log("Triggering: "+e.type+" = "+e.which);
var evt = window.evtqueue.splice(0,1)[0];
$('#edittext').trigger(evt);
}, 1000);
return false;
} else {
console.log("Event actually triggered!");
}
}
$('#edittext').on('keydown keyup', window.eventHold)
我正在创建一个富文本编辑器,并且在快速击键与异步代码(这是我无法控制的)之间遇到了一些问题,因此,我决定创建一个事件队列。但是,我无法通过.trigger()获取已保存的事件,而且当我能够管理时,他们似乎无法触发默认设置。
我错过了什么?这是否需要绑定更多事件来实际触发默认值,例如按键?它是否失败,因为原始绑定事件事件返回false,尽管这是异步的?
答案 0 :(得分:0)
是的,这是因为您在触发事件之前返回了错误
如果您返回false,则
event.isPropagationStopped() and event.isDefaultPrevented() is true
源代码显示,如果两者都为真,则触发方法将不执行任何操作