chrome中的event.dataTransfer.setData(mimeType,angular.toJson(item))之后未设置HTML5 DragDrop dataTransfer.types [英] HTML5 DragDrop dataTransfer.types not set after event.dataTransfer.setData(mimeType, angular.toJson(item)) in chrome

查看:242
本文介绍了chrome中的event.dataTransfer.setData(mimeType,angular.toJson(item))之后未设置HTML5 DragDrop dataTransfer.types的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用druska / native_js_drag_and_drop_helper.js自动化 angular-drag-and -drop-lists

I am using druska/native_js_drag_and_drop_helper.js to automate angular-drag-and-drop-lists

问题:
即使在 event.dataTransfer.setData( mimeType,angular.toJson(item))

dataTransfer.types 未设置或可能不允许在dragstart和drop事件中读取

dataTransfer.types is not set or probably not allowed to read in dragstart and drop event

观察:在手动拖放dropstart事件期间

dataTransfer {dropEffect: "none", effectAllowed: "move", items: DataTransferItemList, types: Array(1), files: FileList}
    dropEffect:"move"
    effectAllowed:"move"
    files:FileList
    items:DataTransferItemList
    types:Array(0)
    __proto__:DataTransfer

DataTransferItemList {0: DataTransferItem, length: 1}
    length: 0
    __proto__: DataTransferItemList

 DataTransferItem {kind: "string", type: "application/x-dnd"}
    kind: ""type: ""
    __proto__: DataTransferItem

观察:使用自定义事件时

dataTransfer:Object
    data:Object
        application/x-dnd:"[{"id":"706","title":"Ab 2","drag":false,"selected":true}]"
        __proto__:Object
    dropEffect:"move"
    effectAllowed:"move"
    getData:function (type)
    setData:function (type,val)
    files:Object
    items:Object
    types:Array(0)

我正在使用

var event = new CustomEvent("CustomEvent", {"cancelable": true})
        event.initCustomEvent(type, true, true, null);
        event.dataTransfer = {
            data: {
            },
            setData: function(type,val) {
                this.data[type] = val
            },
            getData: function(type) {
                return this.data[type]
            },
            dropEffect: 'move',
            effectAllowed:'move',
            types: [],
            items:{},
            files:{}


        }

我无法初始化dataTransfer对象。
dataTransfer.items和dataTransfer.types是只读属性,我不知道如何正确地
初始化它们。 MDN dataTransfer

I am not able to initialize dataTransfer object. dataTransfer.items and dataTransfer.types being read only property , i don't know how to correctly initialize them .MDN dataTransfer

推荐答案

问题为setData dint可以使用代码来设置在拖放过程中由角度拖放列表使用的DataTransfer.types。

Issue was setData dint had code to set DataTransfer.types that was being used by angular-drag-and-drop-lists during drag drop.

        setData: function(type,val) {
            this.data[type] = val
            this.types[0] = type
        }

以上更改解决了该问题。拖放操作现在可以使用本机js正常工作

Above changes fixed the issue .Drag drop working fine now using native js

这篇关于chrome中的event.dataTransfer.setData(mimeType,angular.toJson(item))之后未设置HTML5 DragDrop dataTransfer.types的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆