Probabely这是一个非常简单的问题,但我是Jquery的初学者......
我有以下脚本:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js">/script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.js">
</script>
<script>
$(function() {
$('li').draggable({
containment: 'document',
revert: true
});
$("#config").droppable({
drop: function(event, ui) {
$(ui.draggable).appendTo( "#schub" );
}
});
});
</script>
这就是我的身体所包含的内容:
<div style="width:1800px; height:600px; background-color:#efefef;padding:10px;" >
<div style="float:left; width:1250px; height:580px; border:1px solid grey; padding:10px;" >
<div id="config" style="background-color:blue; border:1px solid black; width:700px; height:500px;">
<ul id="schub" style="width:300px; height:500px;"></ul>
</div>
</div>
<div style=" background-color:red;float:left; width:490px; height:580px; border:1px solid grey; margin-left:10px;padding:10px;" id="menu">
<ul class="category">
<li class="dragg" style="background-color:#e6e6e6; border:1px solid black; width:150px; height:98px;">
</li>
<li class="dragg" style="background-color:#e6e6e6; border:1px solid black; width:150px; height:98px;">
</li>
<li class="dragg" style="background-color:#e6e6e6; border:1px solid black; width:150px; height:98px;">
</li>
</ul>
</div>
现在我的问题:我希望能够将红色<li>
中的灰色<div>
拖动到蓝色<div>
。它实际上有效但灰色<li>
总是从窗口外部恢复为蓝色<div>
当我放下它们时。为什么会这样?我的<li>
从我放弃的地方恢复了吗?
非常感谢你的帮助!
答案 0 :(得分:1)
我想我找到了解决方案:
问题是,<li>
会附加到蓝色div中的新<ul>
,并附加ge之前的css样式。
将<li>
放入新的<ul id="schub">
后,它仍然是来自Jquery的css,左边是:-1000px; (这是因为我们将<li>
从右向左拖动)。然后它被附加到新的ul。
浏览器认为<li>
是左侧<ul id="schub">
的en元素:-1000px;这是在窗外。定义还原:true;已设置在<li>
上,因此它会从窗口外部恢复为<ul id="schub">
。
我实际上没有找到解决方案,而是一种解决方法:
我们可以将定义助手:'clone'添加到<li>
。就像我们得到了原始的克隆。它实际上没有从我们删除它的点回复,但是它被附加到新的<ul>
而没有从窗口外部恢复。