1

С моей точки зрения, вспомогательная опция с Draggable UI - это только эффект отображения, как описано here.Два разных поведения с помощью Draggable UI helper clone и non-clone, что происходит?

Но при использовании его с таблицами он, похоже, прослушивается (положение присоединения неверно).

Пример: http://jsfiddle.net/hmj83/

$(".no_clone_item").draggable({ 
    revert: 'invalid' 
}); 

$(".clone_item").draggable({ 
    helper: 'clone', 
    revert: 'invalid' 
}); 

$("td").droppable({ 
    drop: function (event, ui) { 
     $(ui.draggable).appendTo(this); 
    } 
}); 

Может кто-нибудь объяснить это поведение или дать обходной путь/исправить?

Спасибо.

+0

хорошая демонстрация, есть ли причина, по которой вы не можете использовать draggable с клоном? – user1778606

ответ

2

Предлагаемое решение Tim's работало, но я потерял некоторые функции, когда был реализован в моем приложении.

Вместо этого я хранил вспомогательный клон и просто скрывал оригинал, перетаскивая его и перерисовывая его, когда перетаскивание остановилось.

draggable({ 
    start: function(event, ui) { 
     $(this).hide(); 
    }, 
    stop: function(event, ui) { 
     $(this).show(); 

    } 
}); 
+0

Как ни странно, у меня была проблема с этим, но $ (this) .css ('opacity', '.5'); а затем $ (this) .css ('opacity', '1'); работал хорошо - и он оставляет визуальный след, где первоначально был – user1778606

1

Я считаю, что самым простым было бы сбросить позиционирование с помощью CSS на .drop().

ui.draggable.css({ left: 0, top: 0 }).appendTo(this); 

Это, по крайней мере, решит вашу проблему.

ПРИМЕЧАНИЕ: ui.draggable - текущий перетаскиваемым элемент, объект JQuery.

ДЕМО: http://jsfiddle.net/tive/mJkd5/

Причина, почему JQuery UI добавляет CSS свойство top и left к перемещенному элементу только для визуальной обратной связи. Вы можете проверить это в своем решении, добавив следующий CSS:

td img.no_clone_item { 
    left: auto !important; 
    top: auto !important; 
} 

С помощью этого CSS вы не получаете визуальной обратной связи. Только при удалении элемент будет визуально перемещаться.

Когда .draggable() получает элемент клона, позиция добавляется к клонированному элементу для визуальной обратной связи.

Смежные вопросы