我想创建新事件(使用document.createEvent()或Jquery.Event +复制所有重要属性)并发送克隆以避免修改原始事件。
以下是源代码http://jsfiddle.net/uymYJ/20/
此问题与此How to avoid to modify the event object in this situation
有关任何想法为什么当我在键盘上键入一个键时,我得到newEvent.keyCode
未定义的值?
$("#box").keydown(function(event){
var newEvent = $.Event("keydown");
console.log(event.keyCode); // 68
console.log(newEvent.keyCode); // undefined
});
答案 0 :(得分:2)
从jQuery 1.6开始,您还可以将对象传递给jQuery.Event(),并在新创建的Event对象上设置其属性。
所以你可以尝试var newEvent = $.Event('keydown', event)
,但据我所知,只会创建原始事件对象的浅表副本。
或者只是复制您需要的属性:
var newEvent = $.Event("keydown", {
keyCode: event.keyCode
});
除非您这样做,否则您的事件对象根本就会有无有用的属性。
答案 1 :(得分:1)