使可拖动,可丢弃div不可拖动当其他div被丢弃内
我有一个视图,显示保留和表格作为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
如果你打电话.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
不可拖动,但表格是。我希望表格在某些东西掉落时不能拖动。 – 2014-12-04 15:16:08
用'$(this).draggable('disable')替换'ui.draggable.draggable('disable');'我将更新我的代码。 – 2014-12-04 15:22:38
是的,谢谢!这工作 – 2014-12-04 15:28:37
你有*其实我应该*给你介绍什么。但是,请注意,禁用可拖动容器后,如果我这样做了表格保留,您可能无法点击拖动包含的可拖动对象,因为外部(已禁用)可拖动点击 – blgt 2014-12-04 15:07:00