Lev*_*ith 9 html javascript drag-and-drop
我目前正在使用库Draggabilly向我的应用程序添加拖放功能。我想要做的是drop在 CKEditor 的实例上触发事件(HTML5 原生事件),然后执行任务。这是我到目前为止想出来的:
dragover
和drop。drag和drop事件。相反,它使用mousedown和mouseup。我的问题是,有没有办法使用dispatchEvent或一些类似的方法来模拟dragstart,drag和drop事件?
如果除了我提到的这个问题之外还有更好的解决方案,请告诉我。
谢谢。
我已经为此做了一个函数,基于stackoverflow 中的一些代码,我
也在MDN中读到我正在做的对象的表单已被弃用,但它对我有用,我将来会更正,但现在这可以帮你
function fireCustomEvent(eventName, element, data) {
'use strict';
var event;
data = data || {};
if (document.createEvent) {
event = document.createEvent("HTMLEvents");
event.initEvent(eventName, true, true);
} else {
event = document.createEventObject();
event.eventType = eventName;
}
event.eventName = eventName;
event = $.extend(event, data);
if (document.createEvent) {
element.dispatchEvent(event);
} else {
element.fireEvent("on" + event.eventType, event);
}
}
Run Code Online (Sandbox Code Playgroud)
以及如何将其用于您要求的事件
fireCustomEvent('dragover', someDomObject);
fireCustomEvent('drop', someDomObject, {dataTransfer: {files: [mockedfile]}});
fireCustomEvent('dragend', someDomObject);
Run Code Online (Sandbox Code Playgroud)