簡體   English   中英

如何使用dataTransfer屬性創建事件?

[英]How can I create an event with a dataTransfer property?

我正在嘗試編寫一個測試,以檢查我的dragstart事件偵聽器是否在e.dataTransfer上設置了屬性。

我可以手動創建和調度MouseEvent:

var event = new MouseEvent('dragstart');
html[0].dispatchEvent(event);

但是event.dataTransfer為null,因此我得到了null引用異常。

我嘗試過手動設置屬性:

event.dataTransfer = {};

並且我嘗試使用屬性描述符設置屬性:

var event = new MouseEvent('dragstart');
Object.defineProperty(event, "dataTransfer", {
    configurable: true,
    writable: true,
    value : {}
});

但都沒有奏效。

這對我有用。

var dataTransferObj = { setData: function (val) { this.data = val }}
var event = new CustomEvent('dragover');
event.dataTransfer=dataTransferObj
target.dispatchEvent(event);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM