2010-10-19 19 views
2

j'ai une liste simple comme ceci:drag and drop dojo: comment ajouter gestionnaire pour l'événement drop

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

Et j'utilise les attributs dojo pour faire la liste sortable.

Cela fonctionne sans aucun problème, mais comment ajouter un écouteur à l'événement quand un élément est abandonné? Si l'utilisateur relâche la souris et que l'élément s'enclenche, je souhaite qu'une fonction javascript gère cet événement. Comment puis-je l'ajouter via le balisage?

Répondre

4

Le point d'extension qui vous intéresse probablement est la méthode onDrop sur la source. Vous pouvez utiliser la syntaxe <script type="dojo/..."> compris par l'analyseur pour accomplir ce déclarative, par exemple:

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

Notez que je connecter à la méthode, car il est une fonctionnalité importante au sein de la méthode de onDropdojo.dnd.Source, et les méthodes qu'elle invoque dans sa mise en œuvre par défaut; si je devais remplacer la fonction à la place en utilisant <script type="dojo/method">, cette fonctionnalité par défaut serait clobbered.

L'article de blog SitePen suivant donne plus d'informations sur cette fonctionnalité disponible dans l'analyseur: http://www.sitepen.com/blog/2007/09/21/dojo-09-power-tools-script-typedojomethod/