ОК, при быстром тестировании будет работать следующее ...
$("ul li").draggable({
helper: function() {
return $("<div>hello</div>");
} });
обратите внимание, что вы не передаете функцию в качестве перетаскиваемого параметра.Кроме того, я добавил «hello» в пример, чтобы вспомогательный DIV действительно что-то содержал.
EDIT : Кажется, это предотвращает падение элемента, хммм ...
A FIX : Не очень, но это работает, может быть, это может дать некоторые идеи для улучшения ...
var remember;
$("ul li").draggable({
helper: 'original',
start: function(e, ui) {
remember = $(this).html();
$(this).html("<div>hello</div>");
},
stop: function(e, ui) {
$(this).html(remember);
}
});
Пример здесь
Если вам не нравится идея переменной "запомнить", то, кажется, можно добавить пользовательский параметр к перетаскиваемому объекту, который может содержать исходный HTML-код ...
$("ul li").draggable({
helper: 'original',
start: function(e, ui) {
$(this).draggable("option", "olddata", $(this).html());
$(this).html("<div>hello</div>");
},
stop: function(e, ui) {
$(this).html($(this).draggable("option", "olddata"));
}
});