如何锁定 JointJS 中的单个元素?
How to lock individual elements in JointJS?
我正在尝试找出如何锁定单个元素以防止用户移动它们。我不想阻止所有元素仅移动单个元素。
在我的例子中,我想阻止用户移动另一个元素(嵌入)内的元素。
以指针向下事件为例。以下代码不起作用,但是否有 "locked" 属性或类似的东西可以使用?
this.paper.on(
"element:pointerdown",
function(elementView) {
elementView.model.set("locked", "true");
}.bind(this)
);
我曾尝试使用以下代码使 "child" 元素成为非交互元素,但这会阻止用户从该元素创建 link 等元素。
this.paper = new joint.dia.Paper({
interactive: function(cellView) {
if (cellView.model.isElement()) {
if (cellView.model.parent()) {
return false;
}
}
return true;
},
找到了一个解决方案,该解决方案将使元素不可移动,但仍允许用户从元素创建 link。
this.paper = new joint.dia.Paper({
interactive: function(cellView) {
if (cellView.model.isElement()) {
if (cellView.model.parent()) {
return { elementMove: false };
}
}
return true;
},
我正在尝试找出如何锁定单个元素以防止用户移动它们。我不想阻止所有元素仅移动单个元素。
在我的例子中,我想阻止用户移动另一个元素(嵌入)内的元素。
以指针向下事件为例。以下代码不起作用,但是否有 "locked" 属性或类似的东西可以使用?
this.paper.on(
"element:pointerdown",
function(elementView) {
elementView.model.set("locked", "true");
}.bind(this)
);
我曾尝试使用以下代码使 "child" 元素成为非交互元素,但这会阻止用户从该元素创建 link 等元素。
this.paper = new joint.dia.Paper({
interactive: function(cellView) {
if (cellView.model.isElement()) {
if (cellView.model.parent()) {
return false;
}
}
return true;
},
找到了一个解决方案,该解决方案将使元素不可移动,但仍允许用户从元素创建 link。
this.paper = new joint.dia.Paper({
interactive: function(cellView) {
if (cellView.model.isElement()) {
if (cellView.model.parent()) {
return { elementMove: false };
}
}
return true;
},