【发布时间】:2017-02-23 13:48:23
【问题描述】:
我正在尝试使用 jquery-ui 实现拖放和排序。 drad 和 drop 有效,但我也希望能够插入两个先前丢弃的项目之间。但是我遇到的主要问题是当我尝试对其进行排序时,它再次克隆了丢弃的项目。我如何防止这种行为。
HTML
<div id="drop-area" class="ui-sortable">
<!-- <p id="drop-placeholder-text">Drop Advert Here To Begin</p> -->
</div>
<br>
<div class='tile'>
<div>
<img class='grid-image ui-draggable' src='https://placehold.it/100x100' alt=''>
<p>title</p>
</div>
<br>
<a href='#'>Publish</a>
<a href='#'>Playlist</a>
</div>
<div class='tile'>
<div>
<img class='grid-image ui-draggable' src='https://placehold.it/200x200' alt=''>
<p>title</p>
</div>
<br>
<a href='#'>Publish</a>
<a href='#'>Playlist</a>
</div>
<div class='tile'>
<div>
<img class='grid-image ui-draggable' src='https://placehold.it/300x300' alt=''>
<p>title</p>
</div>
<br>
<a href='#'>Publish</a>
<a href='#'>Playlist</a>
</div>
<div class='tile'>
<div>
<img class='grid-image ui-draggable' src='https://placehold.it/400x400' alt=''>
<p>title</p>
</div>
<br>
<a href='#'>Publish</a>
<a href='#'>Playlist</a>
</div>
JS
$(document).ready(function() {
$("#drop-area").droppable({
drop: function(event, ui) {
var spacer = "<div class='spacer'></div>";
var clone = $(ui.draggable).clone();
clone.addClass('.connectedSortable')
clone.removeClass('.ui-draggable');
$(this).append(clone);
$(this).append(spacer);
}
});
$(".ui-draggable").draggable({
opacity: 1.0,
helper: 'clone',
revert: 'invalid'
});
$("#drop-area").sortable({
axis: "x"
});
$("#drop-area").disableSelection();
});
【问题讨论】:
标签: javascript jquery sorting jquery-ui drag-and-drop