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

时间:2010-10-19 15:43:14

标签: 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>

我使用dojo属性使列表可以排序。

它没有任何问题,但是如何在删除项目时为事件添加侦听器?如果用户释放鼠标并且元素快照到位,我想要一个javascript函数来处理这个事件。如何通过标记添加它?

1 个答案:

答案 0 :(得分:4)

您可能感兴趣的扩展点是Source上的onDrop方法。您可以使用解析器理解的<script type="dojo/...">语法以声明方式完成此操作,例如:

<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>

请注意,我连接到方法,因为dojo.dnd.Source的{​​{1}}方法中有重要的功能,以及它在默认实现中调用的方法;如果我通过使用onDrop来覆盖该函数,则该默认功能将被破坏。

以下SitePen博客文章提供了有关此解析器中此功能的更多信息:http://www.sitepen.com/blog/2007/09/21/dojo-09-power-tools-script-typedojomethod/