На самом деле я только что исправил эту проблему.
Я понял, что в коде treeTable, который я использовал, использовалась функция «parent», и, поскольку над tr было выше, предполагалось, что они могут быть пропущены. Я добавил not (.ignoreForDroppable) для tr (как показано ниже), чтобы игнорировать tr вне моей таблицы дерева (и добавил класс ignoreForDroppable к этим tr). Таким образом, эти tr'ы не будут доступны.
// Configure droppable rows
$("#dnd-example .folder").each(function() {
$(this).parents("tr:not(.ignoreForDroppable)")).droppable({
accept: ".file, .folder",
drop: function(e, ui) {
// Call jQuery treeTable plugin to move the branch
$($(ui.draggable).parents("tr:not(.ignoreForDroppable)")).appendBranchTo(this);
},
hoverClass: "accept",
over: function(e, ui) {
// Make the droppable branch expand when a draggable node is moved over it.
if(this.id != $(ui.draggable.parents("tr")[0]).id && !$(this).is(".expanded")) {
$(this).expand();
}
}
});
});