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