【问题标题】:Selected HTML DIV element draggable using JQueryUi draggable使用 JQueryUi 可拖动的选定 HTML DIV 元素可拖动
【发布时间】:2013-10-21 10:57:14
【问题描述】:

我有一个 jQuery 对象数组,它们是 draggable
我想要的是当数组中存在的任何元素被拖动时,所有其他元素也应该被拖动。

以下是我尝试过但没有成功的示例代码

$(event.target).parents('.ui-class-name').draggable({
   disabled : false,  
   helper: function() {
     var allSelectedEle = $($selected).map( function() {
         return this.toArray() 
     });
     return allSelectedEle;
}
});

这里$selectedjQuery对象的数组

更新:这是sample 标记

【问题讨论】:

    标签: javascript jquery html css jquery-ui


    【解决方案1】:

    您需要保存元素的初始坐标,并在拖动时更新它们 (demo):

    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 )
    });
    

    【讨论】:

    • 我需要拖动选定的元素并将它们放置到新位置而不是它们的克隆
    • 我的可拖动区域和可放置容器是一样的。我只想一次将所有元素移动到新位置。
    猜你喜欢
    • 1970-01-01
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2013-08-06
    • 1970-01-01
    相关资源
    最近更新 更多