我在droppables列表中有一些draggables(每个droppable li有1个可拖动)。
当我将一个可拖动的拖放器从一个可放置的droppable移动到另一个可放置的droppable时,我想对接收的droppable进行diable,并启用它所从的droppable。
在firebug中,droppable类被删除 - 但是droppable的功能仍然存在。我有一种感觉,我需要以某种方式使用live(),但可以使用一个小腿。
$(function() {
$(".user").draggable({
revert : true,
revertDuration : 200
});
$("li.droppable").droppable({
accept : ".user",
hoverClass : "drophover",
drop: function(event, ui) {
var position = this.getAttribute("id").replace("position_", ""),
user_id = ui.draggable.attr("id").replace("user_", "");
droppable = this
parent = ui.draggable.parent()
$.ajax({
url : "users/"+user_id+"",
type : "POST",
dataType: "JSON",
data : ({
"position" : position,
"_method" : "PUT"
}),
success : function() {
$(ui.draggable).parent().addClass("droppable");
$(ui.draggable).appendTo(droppable);
$(parent).removeClass("droppable");
}
});
}
});
});
答案 0 :(得分:8)
您可以通过设置“禁用”选项来启用/禁用droppable,而不是删除droppable类。
success : function() {
$(ui.draggable).parent().droppable( "option", "disabled", false );
$(ui.draggable).appendTo(droppable);
$(parent).droppable( "option", "disabled", true );
}
答案 1 :(得分:3)
不是改变类,也许尝试设置选项? $(ui.draggable).parent().droppable();
和
$(ui.draggable).parent().droppable('option', 'disabled', true)
;