是否可以将两个jquery.ui可拖动链接在一起?

jak*_*ent 6 javascript jquery jquery-ui

我有两个jquery.ui draggables.我限制他们移动到y轴.如果将一个拖动到某个y位置,我希望另一个自动移动到相同的y位置,反之亦然.有没有人曾经将其中的两个联系在一起?

Mot*_*tie 12

更新:脚本和演示已更新,因此拖动时不再限制为y轴.

此脚本查找类"group",后跟一个数字以拖放这些组合对象.我在这里发布了一个演示.

HTML

<div class="demo">
<div id="draggable">
 <p>Drag from here</p>
 <div class="dragme group1"><img src="image1.jpg"><br>Group 1</div>
 <div class="dragme group1"><img src="image2.jpg"><br>Group 1</div>
 <div class="dragme group2"><img src="image3.jpg"><br>Group 2</div>
 <div class="dragme group2"><img src="image4.jpg"><br>Group 2</div>
</div>
<div id="droppable">
 <p>Drop here</p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

脚本

$(document).ready(function() {
    // function to get matching groups (change '.group' and /group.../ inside the match to whatever class you want to use
    var getAll = function(t) {
        return $('.group' + t.helper.attr('class').match(/group([0-9]+)/)[1]).not(t);
    };
    // add drag functionality
    $(".dragme").draggable({
        revert: true,
        revertDuration: 10,
        // grouped items animate separately, so leave this number low
        containment: '.demo',
        stop: function(e, ui) {
            getAll(ui).css({
                'top': ui.helper.css('top'),
                'left': 0
            });
        },
        drag: function(e, ui) {
            getAll(ui).css({
                'top': ui.helper.css('top'),
                'left': ui.helper.css('left')
            });
        }
    });
    $("#droppable").droppable({
        drop: function(e, ui) {
            ui.draggable.appendTo($(this));
            getAll(ui).appendTo($(this));
        }
    });
});
Run Code Online (Sandbox Code Playgroud)


Tom*_*tel 5

我之前没有这样做,但我建议使用drag事件调整相应其他元素的位置:

$('.selector').draggable({
    ...,
    drag: function(event, ui) {

    },
    ...
});
Run Code Online (Sandbox Code Playgroud)

ui对象将包含ui.offset您可以用于手动重新定位其他元素的信息(在属性中).