javascript-是否可以以编程方式触发拖动事件?

我目前正在使用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] 举报,一经查实,本站将立刻删除。