首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果droppable已经包含该元素,则jquery恢复拖动

如果droppable已经包含该元素,则jquery恢复拖动
EN

Stack Overflow用户
提问于 2011-10-13 15:19:31
回答 3查看 2.7K关注 0票数 0

我正面临拖拽的问题。这就是小提琴。http://jsfiddle.net/dJyUQ/16/

有4个盒子(A,B,C,D),都是可丢弃的。".item“div是可拖动的,可以放在4个可拖放的文件中的任何一个上。

我希望只有一个副本的项目是下降的一个可丢弃。因此,当我再次尝试将项目的副本放到同一个droppable上时,它不会允许我这样做。目前,我已经插入了一个警报。但我想取消或恢复拖动。

我想我遗漏了什么,请帮帮我。我搜索了jquery ui dragging和droppable,但什么也没找到。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-13 15:41:23

将您的drop代码更改为:

代码语言:javascript
运行
复制
drop: function(event, ui){
    if($(this).children(".itemcopy").size() > 0) {
        alert("cancel");    //Instead want to cancel dragging of item
        return false;
    }
    $(this).append("<div class='itemcopy'>"+ui.draggable.html()+"</div>");        
}

http://jsfiddle.net/dJyUQ/18/

票数 3
EN

Stack Overflow用户

发布于 2011-10-13 15:42:34

您可以使用this blog article中的这个技巧:使用revert: function(socketObj)

下面是一个有效的示例:http://jsfiddle.net/dJyUQ/16/

编辑Richard的答案要好得多。我将回答如何在revert方法中使用函数(我发现这是一个好主意,请阅读本文)。

票数 1
EN

Stack Overflow用户

发布于 2011-10-13 16:09:42

将drop代码更改为以下代码

代码语言:javascript
运行
复制
drop: function(event, ui){
               if(!($(this).children(".itemcopy").size() == 1)) {
                 $(this).append("<div class='itemcopy'>"+ui.draggable.html()+"</div>");   
        }
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7750675

复制
相关文章

相似问题

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