首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >jsPlumb makeSource()和jQuery sortable()不能很好地一起工作

jsPlumb makeSource()和jQuery sortable()不能很好地一起工作
EN

Stack Overflow用户
提问于 2013-11-04 19:35:57
回答 1查看 1K关注 0票数 2

我正在创建一个用户界面,允许用户通过拖放界面创建数据库表(以及它们的字段和关系)。

这是我创建的jsFiddle,虽然它看起来有很多事情发生,但实际上它只是演示问题所必需的最小值。下面是我的需求,jsPlumb分别很好地处理这些需求,但是当我尝试将它们全部处理在一起时,我会遇到问题。特别是,合并#2和#3是一个问题。

  1. “表”可在画布周围拖动(使用jsPlumb.draggable())
  2. 表中的“字段”可以通过向上/向下拖动(使用jQuery sortable())重新排序。
  3. 用户可以拖动以在两个不同表的字段之间绘制新的“关系”。
  4. 当表被拖动时,任何两个表之间的连接线应该自动重新绘制,这样它们总是连接到/从最靠近“另一个表”的任何一方连接。

为了完成#4,我在每个表示字段的“平铺”上调用jsPlumb.makeSource()和jsPlumb.makeTarget(),而不是在每个块的右侧和左侧创建特定的端点。这样,jsPlumb就可以管理将连接线重绘到与其连接的瓷砖更接近的“字段”瓷砖的任何一侧。

但是,为了完成#2,我将jQuery排序应用到字段中,以赋予用户“拖动到重新排序”的功能。当您单击field...sorting或启动jsPlumb连接时,这会产生冲突,说明您请求的是哪个“操作”?因此,我向每个字段追加了一个红色div (带有一个“.itt-hit.rea”类),并向makeSource()调用添加了一个筛选器,以便只有红色div可以用来创建一个新的jsPlumb连接。

代码语言:javascript
运行
AI代码解释
复制
jsPlumb.makeSource($('.item'), {
    filter:function(event, element) {
        return ($(event.target).hasClass('item_hit_area'));
    }
    ....
}

因此,现在单击红色div告诉jsPlumb启动一个连接,或者单击"field“元素中的其他任何位置将传递给jQuery sortable()。

希望这些要求是明确的。下面是如何重新创建这个问题。

  • 从"Foo 1“上的红色瓷砖拖动到"Bar 2”的主体,以绘制两个表之间的新关系。
  • 拖动foos表(按其标题)以查看#4是否正常工作(所有行都正确地重画)
  • 现在,将"Foo 1“拖到"All”中的项目列表中,这样,它不是列表中最重要的项,而是第二项或第三项。到目前为止,当您拖动时,jsPlumb继续正确地更新连接线。
  • 当您拖动Foos表来移动它时,就会出现问题。一旦这样做,连接"Foo 1“和"Bar 2”的线路突然出现在错误的位置。不幸的是,我没有足够的声誉在堆叠溢出,以张贴一个图像。但是试一试,你会发现这条线跳到了错误的位置。

奇怪的是,如果您拖动另一个表(“所有我的酒吧”表),连接线会跳回两端正确的位置。只有当您拖动位于jsPlumb连接的“源”端的表时,它才会感到困惑,并在错误的位置画线。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-20 02:03:44

问题是,jsPlumb缓存某些可拖放的子元素的偏移量。因此,排序之后,您需要告诉jsPlumb重新计算这些偏移量,如下所示:

http://jsfiddle.net/S7gVa/17/

请注意这一行:

代码语言:javascript
运行
AI代码解释
复制
        jsPlumb.recalculateOffsets($(ui.item).parents(".draggable"));

在可排序的停止回调中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19781506

复制
相关文章
jQuery - AJAX load() 方法
下面的例子会把文件 "demo_test.txt" 的内容加载到指定的 <div> 元素中:
陈不成i
2021/07/22
1.5K0
jquery中load的用法
调用load方法的完整格式是:load( url, [data], [callback] ),其中
OECOM
2020/07/01
1.1K0
延迟加载图片的jQuery插件-Lazy Load Plugin for JQuery
Lazy Load是一个用Javascript写得jQuery插件。它可以使一个长网页中,不在当前视图中的图片延迟加载,以提高页面的载入速度。
EltonZheng
2021/01/26
3.8K0
jQuery - AJAX 简介及AJAX load() 方法
简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据,并在网页上进行显示。
用户7718188
2021/10/07
1K0
pickle.load()函数
此函数和 dump() 函数相对应,用于将二进制对象文件转换成 Python 对象。该函数的基本语法格式为:
用户8442333
2021/11/30
9.3K0
Teamviewer显示“未就绪,请检查您的连接”解决办法
  打开TeamViewer一直提示“未就绪,请检查您的连接”,一直会弹出一个框提示检查网路设置什么。
_一级菜鸟
2019/09/10
13.6K0
Teamviewer显示“未就绪,请检查您的连接”解决办法
延迟加载图片的 jQuery 插件:Lazy Load
网站的速度非常重要,现在有很多网站优化的工具,如 Google 的 Page Speed,Yahoo 的 YSlow,对于网页图片,Yahoo 还提供 Smush.it 这个工具对图片进行批量压缩,但是对于图片非常多的网站,载入网页还是需要比较长的时间,这个时候我们可以使用 Lazy Load 这个 jQuery 插件来延迟加载图片。
Denis
2023/04/15
1.9K0
jquery中load中文乱码的解决方法
本文由 小马哥 创作,采用 知识共享署名4.0 国际许可协议进行许可
IT小马哥
2022/11/16
5290
jQuery遍历函数
.closest():从元素本身開始,逐级向上级元素匹配。并返回最先匹配的祖先元素。
全栈程序员站长
2022/07/07
1.1K0
【冷知识】jQuery 中load()方法页面显示空白bug
项目中,使用jquery中的load方法加载页面,一直不能实现。页面显示空白,也不提示错误。 代码如下:
用户9914333
2022/07/22
1.1K0
jQuery AJAX load()方法中代码执行顺序的问题
问题来源于菜鸟教程介绍 jQuery load() 方法时用的一个实例: JS:
Chor
2019/11/08
1.5K0
kubernetes就绪探针
Kubernetes中的就绪探针(readiness probe)是一种用于检查应用程序是否已准备好接收流量的机制。就绪探针可以帮助Kubernetes确保应用程序只有在准备好接收流量时才会被暴露给外部服务。
玖叁叁
2023/04/29
1.8K0
jquery定时执行函数_jquery自动提交
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/01
2.3K0
JQuery高级应用
toggle([speed],[easing],[fn]) :切换,显示则隐藏,隐藏则显示
乐心湖
2021/01/18
5.9K0
JQuery高级应用
layui布局 使用jquery的load后页面js失效
布局页面 H5在主体部分用jquery的load方法引入其他页面本页面js失效 <!DOCTYPE html> <html> <head> <meta charset="utf-8">
用户5899361
2020/12/07
2.6K0
layui布局 使用jquery的load后页面js失效
布局页面 H5在主体部分用jquery的load方法引入其他页面本页面js失效 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title>layout 后台大布局 - Layui</title> <link rel="stylesheet" hr
用户5899361
2020/12/02
4.3K0
layui布局 使用jquery的load后页面js失效
Matlab数据导入--importdata和load函数
在使用matlab将数据导入到工作空间的时候,经常会使用到两个函数,一个是importdata函数,另一个是load函数,它们的使用方法和使用场景是太相同的,如果不太注意就可能会犯错误,在这里做简要的说明和记录。
用户9925864
2022/07/27
1.1K0
Matlab数据导入--importdata和load函数
jQuery的animate函数
jQuery提供了一个animate函数,可以通过改变CSS属性来实现一些动画效果。
大江小浪
2018/07/25
1.7K0
jQuery函数的使用
上述代码将从Google的CDN中加载jQuery库。确保将其放在<head>标签或页面内容的顶部。
堕落飞鸟
2023/05/18
1.5K0
点击加载更多

相似问题

jquery就绪函数未执行

21

jquery就绪函数在函数内部未命中

12

在jQuery .load()内容完全就绪后执行javascript函数

12

Jquery中未给出输出的就绪函数

11

在jquery循环幻灯片中使用load函数代替就绪函数

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文