首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用droppable后启用droppable

禁用droppable后启用droppable
EN

Stack Overflow用户
提问于 2012-02-14 21:59:00
回答 1查看 726关注 0票数 0

作为this SO question,我遇到了一个模拟问题。我有一个带有overflow: scroll的div,里面有droppables。如果可拖放对象落在div下方,则仍会触发可拖放对象。这个问题的解决方案确实防止了这种情况的发生。然而,我有另一个div,在我的第一个div下面有droppables。这个解决方案也可以防止我掉到我的第二个droppable上。

所以我不得不对它进行一些修改,而不是检查drop事件,而是将它放在droppable上的over事件上。如果droppable是隐藏的,我就禁用它。这使得第二个droppable可以工作,但我在重新启用droppable以供将来使用时遇到了麻烦。我试过使用droppable的事件,但我猜当我禁用droppable时,它也会被禁用,因为它不会触发。droppable被禁用后如何启用?或者有更好的方法来做这件事?

代码语言:javascript
复制
$('.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);           
        }
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-15 16:29:57

我设法做了一个变通的工作,使用draggable对象的stop事件来重新启用那些已被禁用的droppables。

代码语言:javascript
复制
$('.draggable').draggable({     
    stop: function() { 
        $.each($('.droppable.ui-state-disabled'), function(index, value) { 
            $(this).droppable("option", "disabled", false);       
        });
   }          
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9278165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档