是否有任何可配置的选项来实现更换列表项而不是交换JQuery Sortable UI中的项目等功能。当前功能类似于Item1与Item2交换,反之亦然。我需要一个功能,如果在Item1上拖放item2,则item2应该替换Item1,而Item2的位置将为空。有帮助吗?感谢。
答案 0 :(得分:1)
您可以使用以下代码执行此操作:
$('#container').sortable({
connectWith: '#container',
items: '.children', //#container > .children
cursor: 'move',
receive: function(event, ui) {
var item = $(ui.item);
var sender = $(ui.sender);
sender.append(item.siblings('.children'));
}
});
答案 1 :(得分:0)
Hiya 演示 http://jsfiddle.net/CZm9C/2/
现在从第一个框拖到第二个框。希望这会有所帮助,如果我错过任何事情,请告诉我,:)
<强> Jquery的强>
$(document).ready(function(){
$(".leftDiv .item").draggable({
helper: function(ev, ui) {
return "<span class='helperPick'>"+$(this).html()+"</span>";
},
connectToSortable: ".rightDiv"
});
$(".rightDiv").sortable({
'items': ".item",
'receive': function(event, ui){
// find the class of the dropped ui, look for the one with the integer suffix.
var clazz = getClassNameWithNumberSuffix(ui.item);
$('.leftDiv .' + clazz).draggable( "option", "revert", true )
if($('.rightDiv .' + clazz).length > 1){
$('.rightDiv .' + clazz + ':not(:first)').remove();
}
$('.leftDiv .' + clazz).remove();
}
});
});
function getClassNameWithNumberSuffix(el) {
var className = null;
var regexp = /\w+\d+/;
$($(el).attr('class').split(' ')).each(function() {
if (regexp.test(this)) {
className = this;
return false;
}
});
return className;
}
<强> HTML 强>
<div class="leftDiv"> drag to ==>
<div class="item item1">Item 1</div>
<div class="item item2">Item 2</div>
<div class="item item3">Item 3</div>
<div class="item item4">Item 4</div>
<div class="item item5">Item 5</div>
<div class="item item6">Item 6</div>
</div>
<div class="rightDiv"> ==> To this
<div class="item item1">Item 1</div>
<div class="item item2">Item 2</div>
<div class="item item3">Item 3</div>
<div class="item item4">Item 4</div>
<div class="item item5">Item 5</div>
<div class="item item6">Item 6</div>
</div>
<强> CSS 强>
.leftDiv, .rightDiv {width:120px; float:left; border:1px solid #000; padding:5px; margin:10px; min-height:130px}
.rightDiv {margin-left:40px}
.item {height:20px; line-height:20px; text-align:center; border:1px solid #EEE; background-color:#FFF}
.helperPick {border:1px dashed red; height:20px; line-height:20px; text-align:center; width:120px}