我正在尝试将一个列表中的元素排序为两个列表。但是,当我放下元素并将其附加到目标div时,位置非常奇怪(几乎是随机的)。
<div class='container'>// contains generated words, draggable
<div class='word'>Word</div>
<div class='word'>Word 2</div>
...
</div>
<div class='target' id='target1'></div> // made droppable
<div class='target' id='target2'></div> // made droppable
掉落功能:
$('.target').droppable({drop: function(e,ui) {
$(this).append(ui.draggable);
}});
以下小提琴显示了一个目标的问题。
我很不清楚为什么会这样,我还没有在SO或互联网上找到答案......
答案 0 :(得分:2)
我认为位置元素的附加取决于你放置它们的位置。我在你的html <div id="dropEleme"></div>
中添加了一个div,所以drop元素会附加在那里。我也改变你的js代码重置样式:
<强> JS 强>
var a = ["word", "word2", "word3"];
for (var i = 0; i < a.length; i++) {
$('.words').append(makeDiv(a[i]));
}
function makeDiv(e) {
return "<div class='word'>" + e + "</div>";
}
$('.word').draggable({revert:'invalid'});
$('.target').droppable({drop:function(e,ui) {
$(ui.draggable).attr("style",""); //added this line to reset style, like position.
$("#dropEleme").append(ui.draggable);
}});
答案 1 :(得分:1)
答案 2 :(得分:0)
将此css类用于.word
:
.word {
background-color: coral;
position:absolute;
margin: 10px;
}