У меня есть представление со следующим событием. Идентификатор представления - это "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, вызываемый дважды, вызывается дважды.
Как исправить эту проблему.
Попробуйте установить greedy
опцию true в раскрывающемся определении:
По умолчанию, когда элемент отбрасывается в вложенных droppables, каждый droppable получит элемент. Однако, установив эту опцию в true, любые родительские droppables не получат элемент. Событие капли по-прежнему будет пузыриться нормально, но event.target можно проверить, чтобы увидеть, какой droppable получил перетаскиваемый элемент.
Код:
$('#folders li').droppable({
drop: this.cardDrop,
greedy: true
});