JointJS非互动元素

时间:2014-06-03 13:25:00

标签: jointjs

我希望在JointJS Diagrams中禁用元素和链接的移动,同时保持其他功能,例如元素的超链接和鼠标上的链接突出显示:悬停。我提到了以下链接: https://groups.google.com/forum/#!searchin/jointjs/drag/jointjs/R0KZwKqfRbI/rGLJz3t4Un0J https://groups.google.com/forum/#!searchin/jointjs/read $ 20only / jointjs / o8CKU6N7EOI / 1KGNFCQQHGUJ

但他们没有帮助我。我试过了:纸。$ el.css('pointer-events','none'); 但它禁用了一切。我想只禁用元素和链接拖动

4 个答案:

答案 0 :(得分:16)

假设我理解正确,第二个链接应该给你答案。你只需要使论文不互动:

var paper = new joint.dia.Paper({
    el: '#paper',
    width: 500,
    height: 500,
    gridSize: 1,
    graph: new joint.dia.Graph,
    interactive: false
});

这应禁用元素/链接/顶点的任何移动,同时保持突出显示功能。

答案 1 :(得分:2)

paper.$el.css('pointer-events', 'none');

将禁止纸张上所有物品的移动。如果要禁用特定元素的移动,请使用它。

element.attr({rect:{style:{'pointer-events':'none'}}});

详细信息:Make elements 'not selectable' in jointjs

答案 2 :(得分:1)

我的建议是获取事件对象并使用自己的ligic来禁用/ keepalive。 你是怎么做到的:

   var b_paperDraggable = false;
   var b_paperPropertise = false;

paper.on('cell:pointerdown', function (cellView) {

    if (b_paperDraggable == true) {
        //...
    }
    if (b_paperPropertise == true) {

        openPropInModal(cellView.model.id, cellView.model.attributes.elmTypeID);
        $("#modal-container").modal();
    }
});

答案 3 :(得分:0)

对我来说,解决方案是添加cell.model.attr('./pointer-events','none');,例如,您需要搜索模型:

例如在create元素之后:

var cell = paper.findViewByModel(graph.getLastCell());
cell.model.attr('./pointer-events','none');