Javascript dojo拖放:如何为拖放事件添加处理程序

Javascript dojo拖放:如何为拖放事件添加处理程序,javascript,drag-and-drop,dojo,Javascript,Drag And Drop,Dojo,我有这样一个简单的列表: <div dojoType="dojo.dnd.Source" id="myList"> <div class="dojoDndItem">item 1</div> <div class="dojoDndItem">item 2</div> <div class="dojoDndItem">item 3</div> </div> 项目1 项目2 项

我有这样一个简单的列表:

<div dojoType="dojo.dnd.Source" id="myList">
    <div class="dojoDndItem">item 1</div>
    <div class="dojoDndItem">item 2</div>
    <div class="dojoDndItem">item 3</div>
</div>

项目1
项目2
项目3
我使用dojo属性使列表可排序


它工作起来没有任何问题,但是当项目被删除时,如何向事件添加侦听器呢?如果用户释放鼠标,元素捕捉到位,我需要一个javascript函数来处理此事件。如何通过标记添加它?

您可能感兴趣的扩展点是源代码上的
onDrop
方法。您可以使用解析器理解的
语法以声明方式完成此操作,例如:

<div dojoType="dojo.dnd.Source" id="myList">
    <script type="dojo/connect" event="onDrop" args="source, nodes, copy">
        console.log('received drop event:', source, nodes, copy);
    </script>
    <div class="dojoDndItem">item 1</div>
    <div class="dojoDndItem">item 2</div>
    <div class="dojoDndItem">item 3</div>
</div>

log('接收到的丢弃事件:',源,节点,副本);
项目1
项目2
项目3
注意,我之所以连接到这个方法,是因为
dojo.dnd.Source
onDrop
方法以及它在默认实现中调用的方法中有重要的功能;如果我使用
替代该函数,则默认功能将被破坏

以下SitePen博客文章提供了有关解析器中提供的此功能的更多信息: