2010-10-19 43 views
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> 

我使用Dojo属性,使列表排序。

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

回答

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.SourceonDrop方法中重要的功能,并且这些方法是调用在其默认实现中;如果我使用<script type="dojo/method">而不是使用<script type="dojo/method">来覆盖该函数,那么该默认功能将会被破坏。

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