Dojo drag and drop: как добавить обработчик для события drop - PullRequest
2 голосов
/ 19 октября 2010

У меня есть простой список вроде этого:

<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 Ответ

4 голосов
/ 20 октября 2010

Точка расширения, которую вы, вероятно, интересуете, - это метод onDrop в Source.Вы можете использовать синтаксис <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 есть важные функцииметод onDrop и методы, которые он вызывает в реализации по умолчанию;если бы я вместо этого переопределил функцию с помощью <script type="dojo/method">, эта функциональность по умолчанию была бы перекрыта.

Следующий пост в блоге SitePen дает больше информации об этой функции, доступной в анализаторе: http://www.sitepen.com/blog/2007/09/21/dojo-09-power-tools-script-typedojomethod/

...