我试图找出为什么jquery ui draggable
在droppable上发布时会跳转!
它基本上跳到右边,无论页面在哪里发布!
这是一个解释问题的方法:https://jsfiddle.net/2wwa3yaw/1/
我认为是因为我给了div #droppable
一个相对position:relative;
的位置,但我需要这样做。
有什么方法可以解决这个问题吗?
任何建议都将不胜感激。
答案 0 :(得分:1)
我的意思是这样的:
https://jsfiddle.net/Twisty/szmrb146/
当您追加x
时,您可以通过CSS设置top
和left
。
<强> HTML 强>
<div align="center" style="width:100%; padding-top:10px;">
<div id="dragme" style="width: 70px; height: 70px; border: 2px solid #CCC; position:absolute;">
<P> Drag me </P>
</div>
<div align="center" id="droppable" style=" position:relative; width: 250px; height:550px; border: 2px dashed red;">
<P> </P>
</div>
</div>
<强> JQuery的强>
$("#dragme").draggable({
helper: 'clone',
cursor: 'move',
tolerance: 'fit'
});
var x = null;
$("#droppable").droppable({
drop: function(e, ui) {
var parent = $("#droppable");
var x = ui.helper.clone();
var leftAdj = (ui.position.left - parent.offset().left);
var topAdj = (ui.position.top - parent.offset().top);
x.css({
left: leftAdj,
top: topAdj
});
x.draggable({
helper: 'original',
containment: '#droppable',
tolerance: 'fit'
});
x.find('.ui-resizable-handle').remove();
x.resizable();
x.appendTo('#droppable');
ui.helper.remove();
}
});
<强>更新强>
发现了一个小错误,我们只想在第一次删除对象时调整这些错误。所以我添加了一个类和一个条件:
https://jsfiddle.net/Twisty/szmrb146/1/
添加课程:
<div id="dragme" class="outside" style="width: 70px; height: 70px; border: 2px solid #CCC; position:absolute;">
<P> Drag me </P>
</div>
条件:
if (x.hasClass("outside")) {
x.css({
left: leftAdj,
top: topAdj
});
x.removeClass("outside");
}