如何创建新事件

时间:2012-08-21 12:44:50

标签: javascript jquery javascript-events

我想创建新事件(使用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
});

2 个答案:

答案 0 :(得分:2)

来自jQuery API manual

  

从jQuery 1.6开始,您还可以将对象传递给jQuery.Event(),并在新创建的Event对象上设置其属性。

所以你可以尝试var newEvent = $.Event('keydown', event),但据我所知,只会创建原始事件对象的浅表副本。

或者只是复制您需要的属性:

var newEvent = $.Event("keydown", {
    keyCode:  event.keyCode
});

除非您这样做,否则您的事件对象根本就会有有用的属性。

答案 1 :(得分:1)

http://jsfiddle.net/uymYJ/21/

var e = $.Event('keydown', en);

这会影响你(真的吗?)想要;)