Javascript 使用JQueryUi DragTable拖动选定的HTML DIV元素
我有一个Javascript 使用JQueryUi DragTable拖动选定的HTML DIV元素,javascript,jquery,html,css,jquery-ui,Javascript,Jquery,Html,Css,Jquery Ui,我有一个jQuery对象数组,它们是draggable 我想要的是当数组中的任何元素被拖动时,所有其他元素也应该被拖动 下面是我尝试过的示例代码,但没有成功 $(event.target).parents('.ui-class-name').draggable({ disabled : false, helper: function() { var allSelectedEle = $($selected).map( function() { retu
jQuery
对象数组,它们是draggable
我想要的是当数组中的任何元素被拖动时,所有其他元素也应该被拖动 下面是我尝试过的示例代码,但没有成功
$(event.target).parents('.ui-class-name').draggable({
disabled : false,
helper: function() {
var allSelectedEle = $($selected).map( function() {
return this.toArray()
});
return allSelectedEle;
}
});
这里的$selected
是jQuery
对象的数组
更新:这是标记您需要保存元素的初始坐标,并在拖动它们时更新它们():
我需要拖动选定的元素并将它们放置到新的位置,而不是它们的克隆。我的可拖动区域和可拖放容器是相同的。我只想将所有元素移动到新位置,但同时移动所有元素。
var els = $('.eq-ui-widget')
var coords = { x: 0, y: 0 }
function getSelected() {
return els.filter('.selected')
}
els
.draggable({
disbled: true,
drag: function(e, ui) {
getSelected().each(function() {
var orig = $(this).data().orig
$(this).css({
top: orig.top + (ui.position.top - coords.y) ,
left: orig.left + (ui.position.left - coords.x)
})
});
},
start: function(e, ui) {
coords.x = ui.position.left;
coords.y = ui.position.top;
getSelected().each(function() {
$(this).data().orig = $(this).position();
});
}
})
.on('click', function(event) {
if(!event.ctrlKey) return;
$(event.target).toggleClass('selected');
/*logic for dragging all selected elements simultaneously*/
var selected = getSelected()
els.draggable('option', 'disabled', true )
selected.draggable('option', 'disabled', false )
});