当前位置: 首页 > 知识库问答 >
问题:

通过编程“拾取”jsPlumb jQuery中元素之间的连接

颛孙昆
2023-03-14

当使用jsPlumb连接元素时,我觉得缺少一个相当重要的特性和用例:

例如,在mousedown上,从连接器的一个endpoint释放连接器,使其被拖动并能够重新应用于endpoint或目标。在使用流程图连接器或连接器共享endpoint的一般情况下,用户如何决定移动哪个连接器?您总是选择最上面的一个,或者按订单指定的一个。

我所指的用例是动态绘制用户界面图,其中最终用户将在元素之间拖放从endpoint到endpoint的连接。如果多个连接器共享一个终结点,则用户无法选择要移动哪个连接器。

为了解决这个问题,我希望能够通过除endpoint之外的任何东西拖动连接器,从而使其从目标endpoint释放并被用户拖动。

示例:http://jsplumbtoolkit.com/jquery/flowchartConnectorsDemo.html
尝试拖动多个拖动endpoint以拖放endpoint。如果您现在单击并拖动“删除”终结点,您将获得一个预定的连接器(可能不是您想要的连接器)。有没有可能通过拖动连接器的中间(黄线上的任何地方)来拾取它?

问题:
你如何欺骗jsPlumb,有人点击并拖动endpoint,而实际上用户点击并拖动连接器?

注意:我不想删除连接。我知道如何编程。我想触发连接器被其endpoint拾取和拖动,而不直接单击endpoint。

共有1个答案

慕嘉运
2023-03-14

我知道你的问题很老了,但我解决了

您所需要做的就是触发endpoint.canvas元素上的mousedown事件,这将启动连接器拖动。

当然,开始拖动时,鼠标不会在同一个位置,而且直到mousemove事件发生,拖动才真正开始,所以我在document.mousemove上添加了一些无礼的调整。也许有更好的方法可以做到这一点,但对于其他人来说,这可能是一个很好的起点。

$(function() {


jsPlumb.ready(function() {
   var jsp = jsPlumb.getInstance();
    jsp.draggable($("#start"));
    jsp.draggable($("#end"));

    var endpoint = jsp.addEndpoint($("#start"), {
        isSource:true
    });

    jsp.addEndpoint($("#end"), {
        isTarget:true
    }); 

    $("#dragbutton").bind("mousedown", function(e) {

        $(document).bind("mousemove.adjust", function(e) {

            var left = e.offsetX;
            var top = e.offsetY;
            $(endpoint.canvas).css({"left":left, "top":top});
            $(document).unbind("mousemove.adjust");
        });

        $(endpoint.canvas).trigger(e)
    })


})

})

http://jsfiddle.net/VvKZ6/14/

 类似资料:
  • 问题内容: 我有一个列表,我想找到连续元素之间的区别: 您将如何编码find_diff()函数?我可以使用“ for”迭代器对此进行编码,但是我敢肯定,有一种非常简单的方法可以使用一个简单的内衬进行编码。 问题答案: 您可以利用,并列出理解: 在性能方面,似乎并没有太大的差异:

  • 嗨,我一直在到处寻找一个非常简单的解释,如何通过xPath找到一个元素。 我想要的只是一种简单的方法来寻找一个元素,但是我想要找到的所有帮助都需要一个。这对我不管用。以下是我想做的: 加载URL 这是我的代码: 当我执行 我得到未定义时,我做 有没有更简单的方法来获取元素?也许是。。。。

  • 问题内容: 我正在使用PHPDOM,并且试图在DOM节点中获取具有给定类名的元素。获得该子元素的最佳方法是什么? 更新: 我最终使用了PHP,它更容易使用。 问题答案: 更新:CSS选择器的Xpath版本 因此,在下面我回应hakre的评论之后,我感到好奇,并调查了后面的代码。看起来上面的选择器已编译为以下xpath(未经测试): 所以PHP将是: 基本上,我们在这里所做的就是规范化属性,以便即使

  • 问题内容: 如果我知道文本标签包含什么,如何在html页面中获取标签。例如: 问题答案: 您将不得不手动遍历。

  • 我试图改变我的想法,以功能的方式思考,最近面临着这样一种情况,我需要从列表中提取元素,直到满足一个条件,我找不到一个简单自然的方法来实现这一点。显然我还在学习。 假设我有这个清单: 提前感谢您的投入 注意:在发布这篇文章之前,我读了用谓词限制流,但是我不知道如何调整这个答案来解决我的问题。任何帮助将不胜感激。