2014-12-04 113 views
0

我有一个视图,显示保留和表格作为div的。 表格是可拖拽和可拖拽的,保留只能拖动。 我想拖一张桌子到你想要的位置,然后在上面拖动一个预约。 当预订被放置在桌面上时,桌子不再需要拖动。 现在这是我的代码:使可拖动,可丢弃div不可拖动当其他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

+0

你有*其实我应该*给你介绍什么。但是,请注意,禁用可拖动容器后,如果我这样做了表格保留,您可能无法点击拖动包含的可拖动对象,因为外部(已禁用)可拖动点击 – blgt 2014-12-04 15:07:00

回答

1

如果你打电话.draggable().draggable()您可以禁用只保留:

UPDATE

要禁用表格(从拖动状态),请执行以下操作:

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

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

下面是一个简单Demo Fiddle

+0

不可拖动,但表格是。我希望表格在某些东西掉落时不能拖动。 – 2014-12-04 15:16:08

+1

用'$(this).draggable('disable')替换'ui.draggable.draggable('disable');'我将更新我的代码。 – 2014-12-04 15:22:38

+0

是的,谢谢!这工作 – 2014-12-04 15:28:37

相关问题