过滤堆叠元素的多个放置处理程序中断

2023-12-21

我有一些<div>设置为 droppable 的元素可以接收从图库中拖放到其上的缩略图。<img>元素也被设置为接受这些缩略图,因此我可以在图像之上添加图像。放置处理程序从缩略图中恢复图像并将其附加到正文中。

当多个 div 和 imgs 堆叠在一起并且拇指掉落在堆栈上时,就会出现问题。当拇指被放下并且想要将拇指处理成图像并将其附加到主体时,每个堆叠元素的放下处理程序都会被调用。结果是同一图像的多个副本。

如何针对缩略图下降产生的所有中断只处理一次,以便我最终只得到一张图像?

Thanks


我在 jsfiddle 上创建了一个小的概念证明(http://jsfiddle.net/9M8gP/21/ http://jsfiddle.net/9M8gP/21/)。快速细分:

processDroppedElement搜索已删除元素的列表并选择适当的元素。显然,您可以自定义选择标准。处理事件后,它会适当地重置状态变量。

var processDroppedElement = function() {

    $("p").html("");

    var targetElement = null;
    var targetZ = -1;

    for (var i in droppedElements) {
        var element = droppedElements[i];
        var zOrder = $( element ).data("zOrder");
        if (zOrder && zOrder > targetZ) {
            targetElement = element;
        }            
    }

    if (targetElement) {
         $( targetElement )
              .addClass( "ui-state-highlight" )
              .find( "p" )
                .html( "Dropped!" );
        droppedElement = null;
    }

    $("#draggable").css({
        'left': $("#draggable").data('originalLeft'),
        'top': $("#draggable").data('origionalTop')
    });

    droppedElements = [];
};

这部分代码定义了用于管理删除元素和触发的基本变量processDroppedElement功能。

var droppedTimer;
var droppedElements = [];

var queueDroppedElement = function(element) {
    droppedElements.push(element);
}

drop 函数只是将元素排队并创建超时来启动处理逻辑。它会预先清除任何现有的超时,以确保该函数仅运行一次。这有点hack,但是很实用

$( ".droppable" ).droppable({
  drop: function( event, ui ) {

      var myZorder = $( this ).data("zOrder");
      console.log("zOrder: " + myZorder);

      queueDroppedElement(this);

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

过滤堆叠元素的多个放置处理程序中断 的相关文章

  • 像在 tumblr 注册页面上那样鬼写

    有谁知道如何创建一个类似 tumblr 的字段 http www tumblr com http www tumblr com 这是一个 URL 字段 其中有一些褪色的文本 然后当您单击它并键入时 它会附加一些文本 tumblr com 您
  • 当覆盖设置为 null 时,通过外部单击关闭 fancybox

    我正在使用 fancybox 2 1 4 插件 它工作得很好 但我有一个问题 我想将覆盖设置为空 并且当用户单击 fancybox 容器外部 时关闭 fancybox 我已经尝试过以下代码 但它不起作用 因为没有可供单击的覆盖层 fancy
  • 如何使用 jquery-validate 本地化

    有没有办法使用存储库中现有的翻译来动态 即从 JS 代码 设置 更改错误消息的语言 非解决方案 1 加载本地化脚本
  • 如何判断一个网页是否支持jquery?

    确定网页是否启用 jquery 的最佳方法是什么 如果这是确定它的最佳方法 则使用 jquery 本身 if jQuery jquery object exists jQuery 并不神奇 它本质上只是一个大对象 您可以像检查任何其他对象一
  • 使用 jQuery Select2 清除下拉菜单

    我正在尝试使用奇妙的方式以编程方式清除下拉菜单Select2 http ivaynberg github com select2 图书馆 使用 Select2 远程 ajax 调用动态填充下拉列表query option HTML
  • jQuery输入文件点击方法和IE上拒绝访问

    我尝试仅使用一个按钮作为输入文件 它在 Firefox Chrome Safari 中工作正常 但在 IE 中不行 提交表单时我总是收到 访问被拒绝 的消息 代码 input file click 有真正的解决方法吗 我在谷歌上浪费了大约2
  • 如何禁用 body 元素的滚动?

    如何禁用正文滚动 body css overflow hidden 仅隐藏滚动条 但不会禁用滚动 我想禁用正文的滚动 但我想保持其他分区的滚动完好无损 试试这个 CSS 不需要 jQuery 评论后更新 尝试指定高度body too
  • 如何动态调整jqgrid到当前窗口大小?

    如何动态调整jqgrid到当前窗口大小 基于javascript jQuery 最好的例子在这里 TinyMCE 去 http www tinymce com tryit full php http www tinymce com tryi
  • JQuery:将 FormData 和 csrf 令牌一起发布

    Is the data 下面的行正确吗 我想将表单数据和 csrf 令牌发布到 Django 视图函数 file upload on change function var currentpath window location pathn
  • jquery-traversing:选择 -> 选项 -> 文本

    我想将变量与选择 gt 选项 gt 选择的文本进行比较 以更改 选定 属性 这是我的代码 它有效 但我认为这不是最好的编写方式 请原谅我的英语 我使用谷歌翻译寻求帮助嘿嘿嘿 var lista example 1 id option eac
  • jQuery 变量在定义时声称它是未定义的

    我试图在同一页面上有两个自动填充文本框 一个用于手机型号 input1 一个用于固件 input2 当两者都填充时 我希望显示一个带有ID input1input2 的div 但是当在input1 中输入值时 它声称phone 的变量未定义
  • 回到使用 ajax 的 PushState 条目

    我对以下情况有疑问 用户访问网站 用户点击使用history pushState的链接来更新url 通过ajax加载部分页面内容 使用jQuery 用户单击加载新页面的常规链接 用户点击返回返回到pushState条目 该页面现在仅显示通过
  • 在 Select(DropDown) 更改事件上重新初始化 Jquery DataTable

    我正在使用 Jquery UI DataTable 它被填充select DropDown change事件 在PageLoad没关系 当我表演时dropdown change event DataTable is Reinitialize
  • 未捕获的 TypeMismatchError:无法在“CanvasRenderingContext2D”上执行“drawImage”

    我对以下代码片段有疑问 var o inserted motive find span contains document documentElement o 0 b fillText m i h b drawImage d i h e f
  • 您可以将现有的 div 复制到模式对话框吗

    我有一个带有多个面板的仪表板来显示不同的信息 我希望能够添加一个按钮来以模式显示面板 我正在使用引导程序 我所能找到的只是已经编写的模态 我想复制作为面板的 div 标签的内容 然后将其显示在模型中 但我不确定如何进行 该面板的 html
  • 将 JSON 发布到 Python CGI

    我已经安装了 Apache2 并且 Python 可以工作 但我有一个问题 我有两页 一个是 Python 页面 另一个是带有 JQuery 的 Html 页面 有人可以告诉我如何让我的 ajax 帖子正常工作吗
  • 在 setInterval / setTimeout 中使用变量作为时间[重复]

    这个问题在这里已经有答案了 这是一个示例情况 var count time 1000 setInterval function count 1 time 上面的代码会将 count 变量加 1 即 1000 毫秒 看来 setInterva
  • jQuery 中的 $('') 与 $('')

    我看到人们以两种不同的方式在 jQuery 中创建 HTML 元素
  • 将 onclick 事件应用于页面加载时不存在的元素

    我将列表样式设置为看起来像选择框 并且当用户单击列表中的元素时我想触发一个函数 但是该元素是通过加载的AJAX因此 当页面加载并且我无法绑定时不存在onclick事件到它onDomReady 如果我把它作为一个普通的选择列表 我可以只标记一
  • 用javascript调用外部网页(跨域)

    我正在尝试使用以下网络服务来验证提要这个问题 https stackoverflow com questions 11996430 check if a url is a valid feed 但浏览器不允许我向另一台服务器发送 ajax

随机推荐

  • RDFlib“磁盘上”存储

    经过 2 天的研究 我 一个新手 仍然无法弄清楚 RDFFlib 3 1 0 中可用的 磁盘 存储 如果您有一个有效的示例 那就很高兴看到 对于我的应用程序 我更喜欢 SQLite 我不需要访问在线 RDF 商店 我想在 RDF 中存储有关
  • Apollo 服务器解析大数据时性能缓慢

    在解析大数据时 我注意到从解析器将结果返回给客户端的那一刻起 性能非常慢 我假设apollo server迭代我的结果并检查类型 无论哪种方式 操作都花费太长时间 在我的产品中 我必须一次性返回大量数据 因为它被一次性用于在 UI 中绘制图
  • 小行星类型游戏中的正确移动

    目前我有某种小行星游戏 可以在这里看到 http www youtube com watch v rQV6H9kWkFE http www youtube com watch v rQV6H9kWkFE 但是当用户在船舶仍在移动的情况下按W
  • Spark RDD 通过键查找

    我有一个从 HBase 转换而来的 RDD val hbaseRDD RDD String Array String 其中 tuple 1 是行键 数组是HBase中的值 4929101 ACTIVE 4929101 2015 05 20
  • 构建 dist 文件夹并将其发布到 github 页面

    我使用 Vue CLI 使用 Vue js 和 Vuetify 创建了一个项目 我想使用 Github Pages 托管此应用程序 所以我从这里拿了一份指南 https help github com en articles configu
  • 为什么 webpack 配置必须使用 path.resolve 和 path.join

    在 webpack 配置中常见的是 当我们需要设置路径时 path resolve or path join经常使用 我只是想弄清楚why我们必须使用它们而不是普通的字符串路径 例如 dist 我部分理解也许出于某种目的 它们用于返回绝对路
  • 使用 CAShapeLayer 对象用 Bezierpath 绘制一条线

    我正在制作一个图像编辑器 它可以创建不同形状的对象 如圆形 三角形和正方形 也可以更新或删除 所以我用过CAShapeLayer用于创建形状对象 现在我还想在图像上画一条线 它也可以更新或删除 所以我使用了 bezierpath 和CASh
  • 奇怪的行为-选择行触摸没有响应 UITableViewCell

    我有一个非常奇怪的问题 我不知道这对细胞的正常行为是否很尴尬 似乎是这样 因此我将其交给可以回答的人 如果有任何愚蠢的事情 请道歉在问这个问题时 通常 当我们触摸表视图单元格时 会发生什么情况是它导航到视图控制器 编码的控制器 现在奇怪的是
  • Perl 的 rand 参数可以有多大?

    rand n 返回一个介于0 and n Will rand对于我的平台上达到整数限制的所有参数 就 随机性 而言 是否按预期工作 这将取决于你的randbits http www perl com doc FMTEYEWTK random
  • 构造函数什么时候抛出异常是正确的?

    构造函数什么时候抛出异常是正确的 或者就 Objective C 而言 初始化器什么时候返回 nil 是正确的 在我看来 如果对象不完整 构造函数应该失败 从而拒绝创建对象 即 构造函数应该与其调用者签订合同 以提供一个功能性和工作对象 可
  • VBA Round 函数与 Worksheet Round 函数

    我尝试将此Excel函数更改为VBA代码 Excel ROUND value sigfig 1 INT LOG10 ABS value VBA Public Function sigfig val As Double sigf As Int
  • 展平集合

    说我有一个Map
  • build.sbt 定义模块之间的项目依赖关系

    我在 PlayFramework 中有项目 它有一个主要项目 没有任何代码 逻辑 它有几个子模块 main admin common shop 模块 管理和商店将基于通用模块 例如 用户 角色 权限等类 所以我必须这样配置它 lazy va
  • 无法形成对 NSTextView 类实例的弱引用

    仅使用 Swift 这是我在 AppDelegate swift 中的代码 import Cocoa class AppDelegate NSObject NSApplicationDelegate IBOutlet var window
  • WPF 中的 DataTemplate 和 DataContext 有什么区别?

    我可以通过以下方式设置视图模型和视图之间的关系DataContext syntax
  • SwiftUI 点击手势选择错误的项目

    所以我正在尝试创建一个自定义图像选择器 类似于 Instagram 但更基本 这就是我使用它创建屏幕的方法 struct NewPostScreen View StateObject var manager SelectNewPostScr
  • 如何在 ion-checkbox 中使用 ngModel?

    我正在尝试与 ngModel 一起使用 但 ngModel 在那里不起作用 我的代码
  • Java中的AVL树旋转

    我想实现Java AVL树并左右旋转树 我不明白这个 任何人都可以通过查看下面的代码告诉我如何左右旋转树 然后使用 fix up 与这两个函数来平衡 AVL 树 我希望这里有人可以指导我完成这个任务 import java util Ran
  • 是否自定义会员资格

    我正在 ASP NET MVC3 中创建网站 足球 足球 我希望拥有用户 具有默认会员资格的用户的附加信息 这些是普通访问者 和玩家 我认为最好他们继承用户并拥有一些附加信息如衣号 玩家还可以发布文章 用户可以只评论文章 做到这一点的最佳方
  • 过滤堆叠元素的多个放置处理程序中断

    我有一些 div 设置为 droppable 的元素可以接收从图库中拖放到其上的缩略图 img 元素也被设置为接受这些缩略图 因此我可以在图像之上添加图像 放置处理程序从缩略图中恢复图像并将其附加到正文中 当多个 div 和 imgs 堆叠