我为我的draggables使用了clone helper,但是在我拖动克隆并删除它后,它不会保留在droppables中。我浏览了一些示例,并在drop事件中添加.append(),但是draggable不会保留在我放下的位置。任何想法如何让可拖动的克隆保持在它被丢弃的位置? 这是我脚本的一部分(我声明了一个选项变量来存储drop事件的选项):
var element = ui.draggable.children();
var oldID = element.attr('id');
element.attr('id', (oldID + '_' + counter));
var pos = element.offset();
var clone = element.clone();
clone.width(element.width());
clone.height(element.height());
$(clone).css({
"left": pos.left,
"top": pos.top
});
$('#rightframe').append(clone);
感谢任何帮助......
这是我的剧本:
var counter = 0;
var options = {};
options.accept = '.image';
options.drop = function (event, ui) {
if (ui.draggable.children().attr('id').match(/_(\d+)$/) != null) {
// If ID contains number after an underscore, call UpdatePosition action
var temp = ui.draggable.children();
alert('inside if');
updatePosition(temp);
}
else {
// Image not exist, call CreateContainer action
counter++;
var element = ui.draggable.children();
var oldID = element.attr('id');
element.attr('id', (oldID + '_' + counter));
var pos = element.offset();
var clone = element.clone();
clone.width(element.width());
clone.height(element.height());
$(clone).css({
"left": pos.left,
"top": pos.top
});
$('#rightframe').append(clone);
updateImage(element, oldID);
}
}
$('#rightframe').droppable(options);
答案 0 :(得分:0)
我在webapp中做同样的事情。我的问题是两件事。
我的解决方案如下:
首先放弃。销毁droppable中的所有jquery-ui句柄,并在drop函数结束时重新创建它。 (您的情况可能只是调用$('#rightframe').droppable("destroy")
和$('#rightframe').droppable(options);
)
var adjust = $("#rightframe").offset();
$(clone).css({
"left": pos.left-adjust.left,
"top": pos.top-adjust.top
});
这里希望我理解你的问题是正确的:)