gpt4 book ai didi

jquery - 使用拖动和调整大小的 jsPlumb 问题

转载 作者:行者123 更新时间:2023-12-01 01:43:46 24 4
gpt4 key购买 nike

我在我的项目中使用 jsPlumb,它基本上构建了一个流程图,用户可以将形状从一个 div 拖放到另一个 div (#frame)。

所以我希望某些形状可以调整大小,但我遇到了一些问题,因为当我尝试调整形状大小时,它也会像我拖动一样移动。

我在调整大小事件中使用了 jsPlumb.repaint,但仍然很困惑。

/**
* Enable element to be resizable at the div '#frame'.
* Set a new ID to the element
*
* @param {Object} elem
*/
function make_resizable(elem) {
count_id++;

var id_name = "production_" + count_id; // build a new id
elem.attr("id", id_name);

$("#frame").append(elem);

elem.resizable({
resize: function(event, ui) {
jsPlumb.repaint(ui.helper);
},
handles: "all"
});

jsPlumb.draggable(elem, {
containment: "parent"
});
}

function make_draggable(elem) {
elem.removeClass("drag").addClass("draggable onFrame");

elem.attr("visible", "true");
elem.draggable({
containment: 'parent',
});
}

$(document).ready(function(){
$(".drag").draggable({
revert: "invalid",
helper: 'clone',
cursor: "move",
containment: 'frame'
});

$("#frame").droppable({
accept: ".drag",
drop: function(event, ui) {
var cloned = $(ui.helper).clone();

if ( $(ui.helper).parent("#frame").length == 0 ) {
var pos = $(ui.helper).offset();
var draggableOffset = ui.helper.offset(),
droppableOffset = $(this).offset(),
left = draggableOffset.left - droppableOffset.left,
thisTop = draggableOffset.top - droppableOffset.top;

cloned.css({
"left": left,
"top": thisTop
});

if ( cloned.hasClass("production-unit")) {
make_resizable(cloned);
//cloned.css("z-index", zIndex_unit++);
} else {
make_connectable(cloned);
//cloned.css("z-index", zIndex_elem++);
}

make_draggable(cloned);
}
}
});
});

最佳答案

仅供引用,我也遇到了类似的问题。事实证明(并且由问题下的评论之一指出),您不应该将全局 jsPlumb 与实例混合。相反,您应该尽可能使用 jsPlumb 的实例(在上面的示例中,它被命名为 elem)。

这是基于开发人员 (sporritt) 的评论:https://github.com/sporritt/jsPlumb/issues/387#issuecomment-185099198

他们正在考虑删除 2.1.0 中的全局 jsPlumb,以消除在混合两个不同实例且无法正常工作的情况下出现的困惑。

关于jquery - 使用拖动和调整大小的 jsPlumb 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31755552/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com