jQuery UI 仅在特殊区域删除元素

2024-04-07

我对 jQuery UI 的拖放有疑问。我创建动态的新元素,并将其放置在屏幕上的四个区域之一。这些元素是可拖动的,我可以将它们放置在整个屏幕上。但我希望这些元素只能放置在三个区域之一。

我在这里创建了一个完整的工作示例:http://jsbin.com/enusu4/ http://jsbin.com/enusu4/

通过单击红色边框区域中的文本,将创建一个新元素并将其放置在绿色区域中drop1。该元素现在只能拖放到绿色区域之一(drop1, drop2 or drop3), 无处。我怎样才能做到这一点?

最好的问候,蒂姆。


我回答过类似的问题here https://stackoverflow.com/questions/4564865/draggables-jquery-ui-disable-individual-div-on-droppable/4565398#4565398,经过一些修改,它可以做你想要的事情:
JavaScript:

$(function() {
    $('.drag').draggable({
        revert: "invalid",
        scope: "items"
    });
    $('#droppable').droppable({
        scope: "items",
        // if you want to disable the dragging after drop un-comment this
/*
        drop: function(e, ui) {
            $(ui.draggable).draggable({"disabled":true});
        }
        */
    });
    $('#droppable2').droppable();
    $(':button').click(function() {
        var $box = $('<div class="drag">Drag me</div>');
        $('#cont').append($box);
        $box.draggable({
            revert: "invalid",
            scope: "items"
        });
    });
});

HTML:

<div><button type="button">Add box</button></div>
<div id="droppable">Drop here</div>
<div id="droppable2">Out of scope!</div>
<div class="clear"></div>
<div id="cont">
    <div id="draggable" class="drag">Drag me</div>
    <div id="draggable2" class="drag">Drag me</div>
</div>

示例链接 http://jsfiddle.net/ifaour/7t9X9/2/

编辑: 好的,这是一个更新:
JavaScript:

$(function() {
    var dragOptions = {
        revert: "invalid",
        scope: "items",
        helper: "clone"
    }
    $('.drag').draggable(dragOptions);
    $('.droppable').droppable({
        scope: "items",
        drop: function(e, ui) {
            var $drop = $(this);
            $(ui.draggable).draggable({
                "disabled": true
            }).appendTo($drop);
        }

    });
    $('#droppable2').droppable();

    $(':button').click(function() {
        var $box = $('<div class="drag">Drag me</div>');
        $('#cont').append($box);
        $box.draggable(dragOptions);
    });
});

HTML:

<div><button type="button">Add box</button></div>
<div style="float: left;"><h3>Drop here:</h3>
    <div class="drop1 droppable"></div>
</div>
<div style="float: left;"><h3>Drop here:</h3>
    <div class="drop2 droppable"></div>
</div>
<div style="float: left;"><h3>Out of scope!</h3>
    <div id="droppable2"></div>
</div>
<div class="clear"></div>
<div id="cont">
    <div class="drag">Drag me</div>
    <div class="drag">Drag me</div>
</div>

示例链接 2 http://jsfiddle.net/ifaour/7t9X9/3/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery UI 仅在特殊区域删除元素 的相关文章

随机推荐

  • 基于嵌套键值数组对弹性搜索查询进行排序

    我有一个 json uniqueKey 918084 dataValue metadata timestamps key startTime value 2017 02 07T18 00 00 06 00 key processedTime
  • 在不附加 GDB 的情况下获取所有线程的堆栈跟踪

    有没有一种方法可以在不附加 GDB 的情况下打印所有线程的堆栈跟踪 或者是否有一个命令可以用作 gdb 批处理模式来打印所有线程的堆栈跟踪 elfutils https sourceware org elfutils 除其他实用程序外 还包
  • 灵气文法可以作为灵业文法重复使用吗?

    我有一个 Qi 语法定义 用于解析输入 后来我有一个 Karma 生成器 以与输入类似的方式输出 这有可能吗 似乎解析器语法可以自动转换为生成器语法 include
  • tsc 在 dist 中创建 src 文件夹

    我有这个文件夹结构 src subdir1 subdir2 这是我的tsconfig json compilerOptions target es2015 module commonjs sourceMap true declaration
  • SSIS - 多表插入

    我正在使用 SSIS 将数据从 MS Access 复制到 SQL Server 我只会复制一次 这不是重复的任务 只有一张源表 Table Source 我想将数据插入两个表 Table1 和 Table2 Table1 包含一个主键 它
  • Apache - 如何获取 REMOTE_USER 变量

    之前我使用IIS服务器作为PHP服务器 目前 它是apache 在 IIS 上我可以访问该变量 SERVER REMOTE USER 它返回用户名和域 例如域 用户 但安装 XAMPP 后此变量不可用 我应该怎么做才能再次获得这个变量 我的
  • 如何在java中找到2D ArrayList的列的唯一值?

    import java util ArrayList import java util Arrays import java util List import java util Map import java util Set impor
  • 在 C# 中使用全局热键捕获按键

    我有一个在后台运行的应用程序 就像我可以将我的应用程序保留在系统托盘中一样 如果它保留在系统托盘上 我的应用程序将完成它的工作 每当用户按下 F10 或 F9 时 就会完成一些工作 我试过这个 public partial class Fo
  • 未使用的indexeddb数据库是如何清理的

    我使用 IndexedDB 作为本地存储 并且运行良好 由于过于详细的原因 这里无法详细介绍 我经常只创建一个数据库并使用它 但在某些情况下 我需要创建更多数据库 在其中一些情况下 这些额外的数据库可能最终会 孤立 或未使用 并且将来不再需
  • ViewStub'父视图组

    该异常的含义是什么 ava lang IllegalStateException ViewStub 必须有一个非空 ViewGroup viewParent 我正在创建一个视图存根数组并将它们添加到线性布局中 但此异常在运行时显示 for
  • 将数组注释与指针一起使用

    我目前无法理解以下场景 我有一个多维字符串数组 我想仅使用指针来解决它 但在指针上使用数组注释时我总是遇到分段错误 这只是一个示例代码 我想在 pthread 中使用 3D 数组 因此我想通过结构将其作为指针传递 但它不起作用 我想知道为什
  • Three.js 支持波斯语/阿拉伯语文本

    我需要以波斯语 阿拉伯语显示一些文本 我加载了包含字符的字体 并使用 TextGeometry 在场景上创建文本 var loader new THREE FontLoader loader load B Zar Regular js fu
  • 反汇编 Microsoft Visual Studio 2003 编译器输出

    我发现 Microsoft Visual Studio 2003 工具输出的对象文件出现了奇怪的行为 这file实用程序告诉我 asmfile obj 80386 COFF executable not stripped version 3
  • 从 java 执行 PostgreSQL 匿名块

    你好 我有 PostgreSQL 一个匿名块 例如 DATA 是 java 中的一个字符串变量 其中我的匿名块 DO DECLARE new issue text BEGIN new issue UPDATE FORM9902 SET HA
  • 使用 javascript 使复选框表现得像单选按钮

    我需要使用 javascript 操作复选框的行为 它们基本上应该像单选按钮一样 一次只能选择一个 并且取消选择任何先前的选择 问题是我首先不能使用普通的单选按钮 因为每个单选按钮的名称属性都会不同 I know它不是使苹果看起来像梨的最终
  • 项目结算经理与结算帐户用户 GCP

    计费帐户用户或项目计费经理可以创建计费帐户吗 据我了解 用户可以将项目链接到计费帐户 但无法取消链接 而经理可以将项目链接到计费帐户或从计费帐户取消链接 计费帐户用户或项目计费经理可以创建计费帐户吗 不完全是 让我向您介绍一下 Google
  • 如何在输入中添加 SVG 图标?

    我需要在输入中放置图标以创建新用户 对于了解前端代码的人来说 这可能是一项非常简单的任务 但我不这么认为 这是线框 然后我展示我的代码 线框 如你看到的 输入的左侧有图标 现在我的目录中有 SVG 并准备好了 我只需要知道如何将它们放置在输
  • PHP:从递归函数返回一个数组

    我有一个像这样的数组 SimpleXMLElement Object BrowseNodes gt SimpleXMLElement Object BrowseNode gt SimpleXMLElement Object BrowseNo
  • 使用fread读取带有双引号和不正确转义字符的数据

    我尝试使用以下命令加载大型数据文件 约 2000 万行 fread 来自数据表包裹 然而 有些行却造成了很大的麻烦 最小的例子 text csv contains id text 1 Oops The Georgia fread text
  • jQuery UI 仅在特殊区域删除元素

    我对 jQuery UI 的拖放有疑问 我创建动态的新元素 并将其放置在屏幕上的四个区域之一 这些元素是可拖动的 我可以将它们放置在整个屏幕上 但我希望这些元素只能放置在三个区域之一 我在这里创建了一个完整的工作示例 http jsbin