[英]Is it Possible to Trigger Drag Events Programmatically?
我目前正在使用Draggabilly庫向我的應用程序添加拖放功能。 我正在嘗試做的是在CKEditor的一個實例上觸發drop
事件(HTML5 native),然后執行一個任務。 這是我到目前為止所發現的:
dragover
和drop
等原生HTML5事件。 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);
}
}
以及如何將它用於您要求的事件
fireCustomEvent('dragover', someDomObject);
fireCustomEvent('drop', someDomObject, {dataTransfer: {files: [mockedfile]}});
fireCustomEvent('dragend', someDomObject);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.