jsPlumb添加拖拽点的问题

发布于 2022-09-07 21:51:06 字数 1767 浏览 22 评论 0

问题描述

需求是这样的,当我点击鼠标右键出来一个菜单,然后点击新建会出现右边编辑狂,当点击保存后会在我点击鼠标右键处新建一个菜单,这个菜单是我在js中用字符串拼接的,当拼接好后我给A1和Q1分别添加一个addEndpoint(其实就是相当于向元素中插入一个svg);作为连接点,我新建第一个元素后,addEndPoint位置是在正常的,但是当我建立第二个时,addEndpoint元素没有添加到第二个新建的元素里,而是跑到了第一次新建的元素里如第一张图所示,但是位置却莫名其妙跑了好远,我在firebug中看到该元素确实是添加到第一个新建元素里的,请问,这该怎么解决?

问题出现的效果图

图片描述

保存时执行的代码

 var count =0;
    $('body').on('click','#save',function(){
        console.log(ContextLeft,ContextTop);
        console.log($('.drag-area').offset().left,$('.drag-area').offset().top);
        count++;
        var cellLeft = ContextLeft-$('.drag-area').offset().left;
        var cellTop = ContextTop-$('.drag-area').offset().top;
        console.log(cellTop);
        let eleTitle=$(`<div class="drag-question" data-sign='${count}' id='${count}-question'>Q</div>`);
        let eleAnswer=$(`<div class="drag-answer" data-sign='${count}' id='${count}-answer'>A1</div>`)
        let ele = $(`<div class="drag-cell" >
               </div>`).append(eleTitle).append(eleAnswer).addClass('draggable')
        ele.css({"left":cellLeft,"top":cellTop,position: "absolute",margin:0});
        ele.draggable({containment: '.drag-area'})
        $('.drag-area').append(ele)
        jsPlumb.addEndpoint(eleAnswer, origin,{ anchors: "BottomCenter" });//起点
        jsPlumb.addEndpoint(eleTitle , destination,{ anchors: "TopCenter" });//终点
        jsPlumb.draggable(eleTitle,{containment: "parent"});//端点可以拖动设置,并且将端点限制在父级内
        jsPlumb.draggable(eleAnswer,{containment: "parent"});//端点可以拖动设置,并且将端点限制在父级内
    })
})

你期待的结果是什么?

我希望第二次新建的元素中的连接点能正确的出现在该元素里,不是如图所示,出现在了第一次新建的元素里而且跑到了很远,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文