禁用后启用droppable

我有这个问题的模拟问题。 我有一个overflow: scroll的div overflow: scroll内置droppables。 如果可拖动下降到div之下,则仍然会触发掉落。 该问题的解决方案确实可以防止这种情况发生。 但是,我有另一个div,我的第一个div下面有droppables。 这个解决方案阻止我放弃我的第二个droppable。

所以我不得不稍微修改它,而不是检查drop事件,我把它放在droppable上的over事件上。 如果隐藏了droppable,我将其禁用。 这使第二个droppable工作,但我很难重新启用droppable以备将来使用。 香港专业教育学院曾尝试使用droppable事件,但我猜它在禁用droppable时也会失效,因为它不会触发。 如何在禁用后启用droppable? 或者有更好的方法吗?

 $('.droppable').droppable({ over: function(event, ui) { var myOverflowObj = $(this).closest(".module, #process-window"); if (myOverflowObj.length) { var cTop = myOverflowObj.position().top + parseInt(myOverflowObj.css("margin-top")); var cBtm = myOverflowObj.position().top + parseInt(myOverflowObj.css("margin-top")) + myOverflowObj.height(); var dTop = $(this).position().top + parseInt($(this).css("margin-top")); var dBtm = $(this).position().top + parseInt($(this).css("margin-top")) + $(this).height(); if ((dBtm > cTop && dTop < cBtm) == false) { $(this).droppable("option", "disabled", true); } } }, out: function(event, ui) { $(this).droppable("option", "disabled", false); } }); 

我设法做一个解决方法,使用可拖动对象的stop事件来重新启用已禁用的那些droppable。

 $('.draggable').draggable({ stop: function() { $.each($('.droppable.ui-state-disabled'), function(index, value) { $(this).droppable("option", "disabled", false); }); } });