我目前正在使用Draggabilly库向我的应用程序添加拖放功能.我想做的是在CKEditor实例上触发drop事件(HTML5本机事件),然后执行任务.到目前为止,这是我所发现的:
> CKEditor将仅侦听本地HTML5事件,例如拖动
和下降.
> Dragabilly不会触发本地拖放事件.而是使用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);
}
}
以及如何将其用于您要求的事件
fireCustomEvent('dragover', someDomObject);
fireCustomEvent('drop', someDomObject, {dataTransfer: {files: [mockedfile]}});
fireCustomEvent('dragend', someDomObject);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。