【发布时间】:2013-03-09 14:25:49
【问题描述】:
我遇到了 jsPlumb 和 jQuery EasyUI 的真正问题。
这里会发生什么。我有一个使用 EasyUI 的网站,我试图向它添加一些 jsPlumb 连接,但这些连接并没有像我希望的那样运行。
我只用 jsPlumb 准备了一些演示,它正在工作。但是当我将它添加到现有站点时,连接不起作用。
在调查了冲突在哪里之后,我得出了这个结论:
只要我不加载 EasyUI,jsPlumb 就可以工作。加载 EasyUI 后:
<script type="text/javascript" src="jquery.easyui.min.js"></script>
- 我无法通过拖动源端点创建新连接(我拖动端点但现在创建了新连接)
- 端点不跟随它们所属的 div(当您用鼠标指向它们时它们会正确定位)
我准备了 2 个使用 jsFiddle 的演示来说明我的意思。唯一认为这两个示例不同的是 jquery.easyui 的外部资源
- 工作 jsPlumb Full Screen Result
- 不工作:Full Screen Result
我该如何解决这个问题?也许你们中的一些人知道冲突在哪里。我的网站现在打算将 EasyUI 更改为其他任何东西,我真的很想使用 jsPlumb,因为我找不到任何像这样强大的工具包。
编辑:
正如建议的那样,我尝试覆盖 draggable 并且它部分工作但不是我想要的。
(function($){
var __old_draggable = $.fn.draggable;
$.fn.draggable = function(){
if(this.hasClass('_jsPlumb_endpoint') || this.hasClass('window')){
return;
}
return __old_draggable.apply(this, arguments);
};
$.extend($.fn.draggable,__old_draggable);
})(jQuery);
部分原因是:
- 端点不再可拖动 - 这很好,
- 但他们没有创建新的连接,这很糟糕。
- 它们不跟随它们所连接的窗口。
现在我现在,EasyUI 覆盖 jQuery 可拖动,这导致了这种奇怪的(对我而言)行为。可悲的是,我在强制可拖动方法成为原始 jQuery 方法时遇到问题......所以我期待其他解决方案来解决我的问题
编辑:我删除了 EasyUI 中与可拖放覆盖相关的所有内容及其工作。现在的问题是如何在程序中而不是在 easyui 脚本中执行此操作,因为有人会更新到新版本并且一切都将停止工作......
【问题讨论】:
-
尝试改变文件的顺序,将jsPlumb放在EasyUI之后。
-
可悲的是,根本没有区别...尝试了所有可能性
-
jsPlumb 有一个 fork 处理 EasyUI。也许这有帮助? github.com/KodingSykosis/jsPlumb/commits/master
-
哇!棒极了。我在代码中看到它使用 EasyUI,但 README 或其他地方没有信息...koppor,这应该是一个答案,而不仅仅是评论
-
好的,我把它作为单独的答案:)
标签: jquery jquery-ui jsplumb jquery-easyui