JQuery UI:在可放置放置时取消可排序

2023-12-19

我正在使用 JQuery 1.5.1 和 JQuery UI 1.8.11。

我已经为许多项目添加了可排序 - 这里的任务是允许拖动排序,这一切都很好。

但我也想合并 droppable,以便该项目可以被拖放到“复制我”区域 - 那里的任务将是复制该项目(我稍后会解决这个问题)

问题是可放置目标位于可排序列表的底部(我不想移动它),一旦发生放置,可排序项目就会移动到列表的底部。

我想要做的是在放置事件触发时取消这种排序。

你可以在这里看到我的问题 http://jsfiddle.net/6BW7A/1/(只需将“Item 1”拖到“Drop to Copy Item”区域,您就会看到排序没有被取消)

正如你所看到的,我在可放置的“drop”事件中尝试了以下操作(JQuery UI 文档建议),但它似乎不起作用......

$(this).sortable('cancel');

我也愿意接受有关如何实现我正在寻找的这种“拖放复制”效果的任何其他建议。

Thanks


好的,所以我已经制定了一个可以完成这项工作的解决方案。

如果您将取消代码放在可排序函数的“停止”事件中,则取消代码确实有效。但是,它仅在“恢复”完成后才适用。问题是我试图从可放置的“drop”事件中复制/恢复元素,但这还为时过早。

解决方案是等待“停止”事件完成,为了实现这一点,我必须创建一个“等待复制”标志,以便在“停止”事件中进行检查。

这是一个例子 http://jsfiddle.net/musefan/6BW7A/34/

它仍然感觉不对(用户体验方面),但它工作正常,并且您始终可以在可排序函数上将恢复设置为 false 以获得稍微好一点的感觉。

示例中的代码如下...

var itemCount = 3;
var awaitingCopy = false;

$(init);

function init() {
    $("#Items").sortable({
        revert: true,
        placeholder: "ItemPlaceHolder",
        opacity: 0.6,
        start: StartDrag,
        stop: StopDrag
    });

    $("#CopyItem").droppable({
        hoverClass: "CopyItemActive",
        drop: function(event, ui) {
            awaitingCopy = true;
        }
    });

    $("#NewItem").click(function(e) {
        e.preventDefault();
        itemCount++;
        var element = $("<div class='Item'>Item " + itemCount + "</div>");
        $("#Items").append(element);
        element.hide().slideDown(500);
    });
}

function CopyItem(element) {
    awaitingCopy = false;
    var clone = element.clone();
    $("#Items").append(clone);
    clone.hide().slideDown(500);
}

function StartDrag() {
    $("#NewItem").hide();
    $("#CopyItem").show();
}

function StopDrag(event, ui) {
    if (awaitingCopy) {
        $(this).sortable('cancel');
        CopyItem($(ui.item));
    }
    $("#NewItem").show();
    $("#CopyItem").hide();
}

不管怎样,希望这能帮助其他想要同样效果的人……不过不要窃取我的设计;)

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

JQuery UI:在可放置放置时取消可排序 的相关文章

  • 可以使用 jQuery 或 Javascript 将图片的特定部分用作链接吗?

    我有这个想法 将图片 而不是文本 的各个部分链接到不同的页面或网站 并且我想在不实际创建不同的照片并将它们彼此靠近的情况下完成 这样看起来就像是一张完整的图片 这里有人知道如何使用 JavaScript 的变体 例如 jQuery 或纯 J
  • 文件上传控件 OnChange 事件 JQuery

    我正在尝试使用 AJAX JQUERY 和 Net HTTPHandler 构建页面来上传文件 如下所示http dotnet dzone com news async file upload jquery and http dotnet
  • 除了更改标题之外,如何在 Firefox 中强制另存为对话框?

    有没有办法在 ff 中强制打开 www example com example pdf 的另存为对话框 我无法更改标题 如果您可以将文件以 Base64 格式输出到客户端 则可以使用 data uri 进行下载 location href
  • 标签获取 href 值

    我有以下 html div class threeimages a img alt Australia src Images Services 20button tcm7 9688 gif a div class text h2 a hre
  • 如何将 Google Charts 与 Vue.js 库一起使用?

    我正在尝试使用 Vue js 库使用 Google Charts 制作图表 但我不知道如何添加到 div 这是我尝试做的 这是如何使用普通 javascript 添加图表 这是文档的代码示例 https developers google
  • jQuery Mobile 表单验证

    我有一个移动网站 除了验证之外一切都工作正常 基本上我希望从用户那里获取值 然后在单独的页面 process php 上处理它们 但是 在这样做之前 我需要检查以确保字段已填充 我已经研究了几种方法来做到这一点 但似乎没有一种有效 我现在有
  • jquery从变量中删除html元素

    我将 html 保存在变量中 var itinerary events today html 我有很多 html 和一个按钮我想删除 它的 ID 为 myButton 如何从变量中保存的 html 中删除它 我建议这种方法 var itin
  • 将div设置为隐藏,延时后可见

    我试图在 X 时间后 也许甚至在随机时间之后 但现在我们只做固定时间 在黑色背景上出现一个黄色方块 function initialSetup if document getElementById yellow null document
  • Firefox 书签探索未超过 Javascript 的第一级

    我已经编写了一些代码来探索我的 Firefox 书签 但我只获得了第一级书签 即我没有获得文件夹中的链接 e g 搜索引擎 雅虎网站 谷歌网站 在此示例中 我只能访问 Search engines 和 google com 不能访问 yah
  • Javascript 数组到 VBScript

    我有一个使用 Javascript 构建的对象数组 我需要使用 VBScript 读取它 如下例所示 我找不到在 VbScript 代码中循环遍历数组的方法myArray object 这个例子是我的问题的简化 我无法更改页面的默认语言 这
  • jQuery 获取元素内的鼠标位置

    我希望制作一个控件 用户可以在 div 内单击 然后拖动鼠标 然后松开鼠标以指示他们想要的内容有多长 这是针对日历控件的 因此用户将指示特定事件的时间长度 看起来最好的方法是在父 div 上注册一个 mousedown 事件 而父 div
  • HTML 离线应用程序缓存,列出下载的文件

    作为我正在构建的离线 Web 应用程序的加载屏幕的一部分 使用缓存清单 http developer apple com library safari documentation iPhone Conceptual SafariJSData
  • 我可以使用 jQuery 打开下拉列表吗

    对于 HTML 中的下拉列表
  • 如何在类似控制台的环境中运行 JavaScript?

    我正在尝试遵循这里的示例 http eloquentjavascript net chapter2 html http eloquentjavascript net chapter2 html and print blah 在浏览器中运行时
  • 为什么我不能在 AngularJS 中使用 data-* 作为指令的属性名称?

    On the t他的笨蛋 http plnkr co edit l3KoY3 p preview您可以注意到属性名称模式的奇怪行为data 在指令中 电话 Test of data named attribute br
  • Javascript转换时区问题

    我在转换当前时区的日期时间时遇到问题 我从服务器收到此日期字符串 格式为 2015 10 09T08 00 00 这是中部时间 但是当我使用 GMT 5 中的 new Date strDate 转换此日期时间时 它返回给我的信息如下 这是不
  • 条件在反应本机生产中失败,但在开发中有效

    我创建了一个反应本机应用程序 我需要通过它进行比较 如果属实 就会执行死刑 问题是 该条件适用于 React Native 开发模式 而不适用于 React Native 生产版本 我使用 firebase 作为数据库 也使用 redux
  • Safari 支持 JavaScript window.onerror 吗?

    我有一个附加到 window onerror 的函数 window onerror function errorMsg url line window alert asdf 这在 firefox chrome 和 IE 中工作正常 但在 s
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp
  • 如何从图像输入中获取 xy 坐标?

    我有一个输入设置为图像类型

随机推荐

  • AngularJS $http.get 返回未定义且 $http() 不是函数

    我正在构建一个应用程序来动态加载和显示 AngularJS 中数据库中的数据 但是当我尝试访问我的 API 使用 http 或 http get 时 我收到错误 http get 错误 TypeError undefined is not
  • 从 Ruby 调用 Erlang

    我应该使用什么最棒的 gem 从 Ruby 应用程序调用 Erlang 函数 我希望使用 rspec 来测试一些 gen server 的东西 Erlectricity 看起来很可靠 但没有像 Node rpc 这样的东西 只是消息传递 有
  • Robot.mouseMove 未正确移动到指定位置

    每当我运行mouseMove当向机器人发出命令时 鼠标并不总是到达相同的位置 例如 我有以下代码 import java awt Robot import java util concurrent TimeUnit public class
  • MySQL 全文搜索是如何工作的?

    我非常清楚如何使用 MySQL 实现全文搜索 我知道如何添加索引 进行查询并对结果进行排序 但我一直在尝试获取一些有关其工作原理的更深入的信息 以便了解幕后发生的事情 MySQL 如何确定结果相关性 分数到底意味着什么 可以达到从 0 1
  • 如何在 OSGi 中实现 ManagedServiceFactory?

    我目前正在尝试设置我自己的实现ManagedServiceFactory 这就是我想要做的 我需要在每个配置的基础上使用某些服务的多个实例 在 DS 中 组件工作得很好 但现在我发现这些服务应该根据某些外部资源的可用性来处理自己的生命周期
  • 推送大型 github 存储库失败,并显示“无法推送到不合格的目的地:master”

    我有一个大型 git 存储库 从 SVN 存储库创建 我想将其推送到 github 鉴于它很大 我不能尝试直接推送它 因为它会因 打包太大 错误而失败 到目前为止一切都很好 我可以一次推送一个提交 但当我尝试这样做时 发生的事情是 git
  • 内容脚本中的 IFrame。如何与main.js通信?

    我的 Firefox 插件从内容脚本 page mod 打开 Fancybox 类型 iframe 在 Fancybox 中我显示了我自己的 HTML 页面 my fancybox stuff html 位于我自己的服务器中 现在 从my
  • 获取指向成员 std::string::size 的指针无法与 libc++ 链接,但可以与 libstdc++ 一起使用

    我正在做一个需要使用 libc 的项目 我遇到了以下问题 当我尝试编译以下代码时 include
  • 用于将复制集本地备份到 Windows Server 的 MongoDB 脚本

    我想通过 Windows 2012 服务器运行的复制集对 MongoDB 进行每日备份 最终目标是获取每日备份并将备份写入远程或本地共享 Windows 我可以批处理 mongodump 命令吗 任何帮助将不胜感激 抱歉 有点晚了 但以下内
  • 使用 hdiutil 或其他工具向 DMG 添加背景图像/颜色? [复制]

    这个问题在这里已经有答案了 可能的重复 如何使用命令行工具为 Mac OS X 创建美观的 DMG https stackoverflow com questions 96882 how do i create a nice looking
  • 指定的任务可执行位置......csc.exe无效错误

    我有一个关于 TFS 的项目 它可以在除了我的机器之外的其他人的机器上运行 构建时 我收到图像中可以看到的错误 指定的任务可执行位置 csc exe 无效 目前正在尝试修复 VS 2017 根据该消息 似乎csc exe已经损坏 只需尝试以
  • 允许唤醒计时器 Windows 7/Vista

    我需要允许唤醒计时器 计算机从睡眠 休眠状态唤醒 以将所有电源计划设置为已启用 我尝试了 Win32 PowerSetting 但它只适用于英文版的 Windows 我需要使用 NET 2 0 感谢您的回复 我怀疑您可以使用对 powrpr
  • Rust 参考在仍然借用的情况下被丢弃在这里

    问题 我从一个方法中收到 XXXXXXX 在仍借用时被丢弃 错误 其中 XXXXXXX 在方法结束时有效 这很好 但 Rust 不必要地期望它与输入引用一样长因为它们有明确的生命周期 这是一些设置信息 我有一个结构 其中迭代文本内容中所有找
  • 无法使用 Directus v8 API 获取临时令牌

    我正在使用最新的 Directus v8 版本 我安装了它并用它来设计我的架构 一切似乎都正常 但是当我尝试获取临时令牌来验证用户身份时 我收到一个关于未授权的奇怪错误 同时 AUTH 端点没有不需要先前授权的用户 显然 我的 Direct
  • WhitePages API 的替代方案? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在使用 WhitePages API developer whitepages com 来获取电话类
  • PHP 中的 AWS Cloudfront SetCookie

    我正在尝试设置 cookie 以查看来自 AWS Cloudfront 的私有内容 http docs aws amazon com AmazonCloudFront latest DeveloperGuide private conten
  • 应用程序启动期间的键盘修改器

    我想捕获在应用程序启动期间是否按下了修改键 以确定全屏或窗口化 在主窗口构造函数中 我尝试检查键盘 修饰符 http msdn microsoft com en us library system windows input keyboar
  • JavaScript 的日期范围限制

    有两个文本类型的输入字段 用于以 mm dd yyy 格式写入开始日期和结束日期 我需要一个 JavaScript 函数来检查输入日期之间的日期范围间隔是否不超过 14 天 并且最大日期应该是当前日期 有没有插件或快速解决方案 我尝试使用
  • 调整大小之前传单地图无法正确显示

    我在 Binding scala 上使用带有 scalajs leaflet 外观的 Leaflet 并且地图初始化 显示不正确 为了重现这个问题 我准备了一个lihaoyi workbench页面类似于 scalajs leaflet 中
  • JQuery UI:在可放置放置时取消可排序

    我正在使用 JQuery 1 5 1 和 JQuery UI 1 8 11 我已经为许多项目添加了可排序 这里的任务是允许拖动排序 这一切都很好 但我也想合并 droppable 以便该项目可以被拖放到 复制我 区域 那里的任务将是复制该项