JQuery отбрасывает метод dropppable, вызываемый дважды

0

У меня есть представление со следующим событием. Идентификатор представления - это "folder-block". мой элемент View выглядит примерно так:

<ul>
  <li></li>
  <li></li>
  <li></li>
 </u>
 <ul>
     <li>
       <ul></ul>
     </li>
  </ul>

Ниже приведено событие в позвоночнике.

  events{
   "mousedown .all-folders": "dragCustomFolders"
  },
  dragCustomFolders: function(e){
    $('#folders ul li').draggable({
      cursor: 'move',
      drag: this.dragElement,
      revert: "invalid"
    });

    $('#folders li').droppable({
      drop: this.cardDrop,
    });
  }

Когда я перетаскиваю li из одной ul в другую, ul drop вызывается только один раз. Когда я перетаскиваю элемент li в другой элемент li внутри той же функции удаления элемента ul, вызываемый дважды, вызывается дважды.

Как исправить эту проблему.

Теги:
backbone.js

1 ответ

4
Лучший ответ

Попробуйте установить greedy опцию true в раскрывающемся определении:

По умолчанию, когда элемент отбрасывается в вложенных droppables, каждый droppable получит элемент. Однако, установив эту опцию в true, любые родительские droppables не получат элемент. Событие капли по-прежнему будет пузыриться нормально, но event.target можно проверить, чтобы увидеть, какой droppable получил перетаскиваемый элемент.

Код:

$('#folders li').droppable({
    drop: this.cardDrop,
    greedy: true
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню