通过拖放将自定义元素的对象引用传递给另一个自定义元素

tpreston_it

我有2个自定义元素A和B。我现在已经设置了元素,以便可以将A拖放到B上,并且将A的副本添加为B的子元素。我不需要虽然是孩子。我希望A本身是孩子。

我怎样才能做到这一点?

我正在使用dataTransfer将HTML发送到B,然后B正在构造A的副本。只要完成工作,我很乐意使用某些东西代替dataTransfer。我不想使用任何库。

CoffeeScript:

class A extends HTMLElement
    constructor: () ->
        super()
        this.setAttribute 'draggable','true'
        this.setAttribute 'ondragstart','drag(event)'
    drag: (event) ->
        event.stopPropagation()
        event.dataTransfer.setData 'symbol', this.outerHTML

class B extends A
    constructor: ->
        super()
        this.setAttribute 'ondrop','drop(event)'
        this.setAttribute 'ondragover','allowDrop(event)'
    drop: (event) ->
        event.preventDefault()
        event.stopPropagation()
    data = event.dataTransfer.getData 'symbol'
        template = document.createElement 'template'
        template.innerHTML = data
        try
            event.target.myFunctionToAddChild template.content.firstChild
    allowDrop: (event) ->
        event.preventDefault()

谢谢!:)

tpreston_it

这似乎是不可能的。

而是给所有元素一个唯一的ID,然后通过dataTransfer方法传递该ID。这样,接收元素可以通过其ID查找该元素并直接对其进行引用。

通过yield获取唯一的ID:

getUniqueID = ->
    num = 0
    loop
        num += 1
        yield 'Unique_ID:' + num
    return

发送ID:

drag: (event) ->
    event.stopPropagation()
    event.dataTransfer.setData "Unique_ID", this.id

接收ID并查找元素:

drop: (event) ->
    event.preventDefault()
    event.stopPropagation()
    Unique_ID = event.dataTransfer.getData 'Unique_ID'
    element = document.getElementById(Unique_ID)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将自定义对象传递给另一个片段

将自定义对象数组传递给android中的另一个Activity

通过 Qt 中的信号/槽机制将自定义类指针传递给另一个线程

如何将自定义 ObservableCollection 元素复制到另一个自定义 ObservableCollection?

自定义HTML元素扩展了另一个自定义元素

将自定义列表对象复制到另一个列表对象

将自定义对象传递到另一个ps1脚本

如何通过自定义属性在另一个元素内的元素内获取文本

是否可以像组件绑定一样将自定义元素传递给参数的对象?

使用来自另一个 webapp 的 Polymer 3.0 自定义元素

在另一个自定义标签内动态创建聚合物元素

将自定义注册块导入到Gutenberg中的另一个自定义块

在另一个自定义元素的模板中实例化时,自定义元素未检测到子元素

WPF 将自定义 ContextMenu 添加到另一个视图中引用的视图

使用Guava集合将自定义对象列表转换/过滤到另一个对象

自定义RichTextBlock引发异常“元素已经是另一个元素的子元素”

数据绑定-在另一个自定义元素中的2个自定义元素之间进行通信

当自动关闭自定义元素紧接在另一个自动关闭自定义元素之前时,不显示

将自定义 CLI 命令移动到另一个文件

如何将自定义xtype添加到另一个视图?

Node.js:在另一个自定义类中引用自定义类

如何将自定义指令属性传递给Angular 1.5中的自定义指令子元素?

将自定义函数传递给jquery对象

将自定义对象传递给WTForm

将prop作为参数传递给另一个prop自定义属性c#

Watch无法在另一个自定义元素指令中使用的自定义属性指令中工作

如何使用其他自定义指令中的元素标签作为另一个自定义指令的模板

Firebase Cloud Firestore-将文档获取到自定义对象并将其传递给另一个活动

从自定义可编辑UITableViewCell更新另一个字符串-快速通过引用传递?