如何克隆javascript事件对象?

时间:2016-02-05 01:50:07

标签: javascript javascript-events mouseevent

这是我触发事件的方式,它对我来说很好,但现在我需要使用事件目标,我意识到它没有被正确复制:

Element.prototype.trigger=function(eventname,ev){
    var e;
    if(ev){
        console.log(ev.target); //target is the element under the mouse
        e = new window[ev.constructor.name](eventname,ev);
    } else e = new Event(eventname);
    this.dispatchEvent(e); //e.target===element
    return this;
}

调用我的函数时,event.target始终是相同的元素(它应该返回鼠标下的元素)

element.on("mousedrop",function(e){
    console.log("drop",e.target,e.currentTarget); //e.target===element
});

如何克隆事件,包括其所有属性? 这显然不是常规对象,它不会被识别为事件,并且有一些属性只有一个getter才能将它们复制到一个新的事件对象中。

这是一个例子,尝试将draggable放入droppable:

https://jsfiddle.net/uxfaprmk/3/

0 个答案:

没有答案