javascript - 更改 :position event for every cell in the paper using joint. js

标签 javascript jointjs

通过点击纸上的空白处,将添加一个新的单元格:

paper.on({
    'blank:pointerdblclick': function(event, x, y) {
        var rect = new joint.shapes.app.Standard({
            position: { x: x, y: y },
            size: { width: 100, height: 80 },
        });

        graph.addCell(rect);

        rect.on('change:position', function() {
            paper.fitToContent();
        });
    }
});

但由于 change:position 事件是在 blank:pointerdblclick 事件中设置的,它只会为新元素触发。但它应该为本文存在的所有单元格设置。 因此,要移动纸上的任何单元格,应执行 fitToContent() 函数...

我该怎么做?

P.S.: standard-element 定义如下:

joint.shapes.app.Standard = joint.shapes.basic.Generic.extend({
    markup: '<rect/><circle class="port-top"/><circle class="port-bottom"/><circle class="port-right"/><circle class="port-left"/><text/>', 
    defaults: joint.util.deepSupplement({
        type: 'app.Standard',
        attrs: {
            ...
        }
    }, joint.shapes.basic.Generic.prototype.defaults)
});

最佳答案

使用graph.getElements()并遍历它们设置处理程序

graph.getElements().forEach(function(element) {
    element.on('change:position', function() {
        paper.fitToContent();
    });

关于javascript - 更改 :position event for every cell in the paper using joint. js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33202054/

相关文章:

javascript - JointJS 端口不起作用

javascript - 在 D3 树可视化中过渡节点圆圈颜色

javascript - 单击下一步按钮和在 jQuery 验证上按回车键之间的区别

jointjs - rappid Joint js 是否能够在布局完好的情况下从 JSON 保存和重新加载图表

javascript - 在jointJS中获取外部元素来扩展论文

javascript - 如何使用 joint js 或 rappid js 显示具有光环处理程序的 basic.rect 元素下的文本

css - 防止在 Joint JS 中拖拽

javascript - 如何在循环中越来越多地更改变量名称

javascript - 串行滚动条问题

javascript - 如何使用 php time() 作为基准时间在 javascript 中显示世界时间?