【问题标题】:make draggable,droppable div not draggable when other div is dropped inside当其他 div 放入其中时,使可拖动、可放置的 div 不可拖动
【发布时间】:2014-12-04 14:35:37
【问题描述】:

我有一个视图,它将预订和表格显示为 div。 表格是可拖放的,预订只能拖动。 我想将一张桌子拖到您想要的位置,然后在上面拖一张预订。 当保留放在它上面时,表需要不再是可拖动的。 这是我现在的代码:

<script>
$(".draggable").draggable({
    snap: ".draggable",
    snapMode: "outer",
    stop: function (event, ui) {
        var finalxPos = $(this).css("left").replace("px", "");
        var finalyPos = $(this).css("top").replace("px", "");
        var itemId = $(this).attr('id');
        var posXid = "posX" + itemId;
        var posYid = "posY" + itemId;
        $('input:text[id="' + posXid + '"]').attr("value", finalxPos);
        $('input:text[id="' + posYid + '"]').attr("value", finalyPos);
        },
}).droppable({
    drop: function(event, ui) {
        $(this).draggable({ disabled: true });
    },
    out: function(ev, ui) {
        $(this).draggable({ disabled: false });
    }
});

    $(".draggableres").draggable({
        snap: ".draggable",
        snapMode: "inner"
    });
</script>

我的看法:

<div id="tablewrapper">
   <div class="draggableres reservation">reservation 1</div>

   <div class="draggable table ui-widget-content">
   </div>
</div>

当我现在运行它并删除预订时,预订不再是可拖动的,而不是表格。 它在一个循环中,所以

$(".draggable").draggable({disabled: true});

无法正常工作,因为可能有更多 .draggable div

【问题讨论】:

  • 其实你所拥有的应该给你的正是你所描述的。但是请注意,在禁用可拖动容器后,您可能无法单击并拖动包含的可拖动容器,因为外部(已禁用)容器会吞下单击

标签: jquery html jquery-ui drag-and-drop


【解决方案1】:

如果您致电.draggable().draggable(),您可以只禁用预订:

更新

要在删除保留后禁用表格(不可拖动),请执行以下操作:

$('.table').droppable({
    activeClass: 'grey',
    hoverClass: 'yellow',
    accept: '.draggables',
    drop: function(event, ui){
       $(this).draggable('disable');
   }
}).draggable();;

$('.draggables').draggable({
    snap: '.table',
    snapMode: 'inner'
});

这是一个简单的Demo Fiddle

【讨论】:

  • 如果我这样做,餐桌预订不再可拖动,但餐桌可以。我希望桌子上放东西时不能拖动。
  • 只需将ui.draggable.draggable('disable'); 替换为$(this).draggable('disable') 我会更新我的代码。
  • :-) 如果您需要使用现有代码进一步明确,请告诉我。我简化了我的答案,以便更容易调整。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-18
  • 2016-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-21
相关资源
最近更新 更多