Javascript 如何向joint.js元素添加onclick事件?

Javascript 如何向joint.js元素添加onclick事件?,javascript,jointjs,Javascript,Jointjs,我在DAG中有一个joint.js元素,希望能够通过单击它来触发事件 我可以使用$(选择器)。单击(…),但我想知道是否有一种特定于joint.js的处理方法, 因为那样可能更好。我决定参加onclick的一个活动是“批量:停止” 我的代码: var variable = new joint.shapes.basic.Rect({ name : label, id: label, onclick : function () {alert("hello");},

我在DAG中有一个joint.js元素,希望能够通过单击它来触发事件

我可以使用
$(选择器)。单击(…)
,但我想知道是否有一种特定于joint.js的处理方法, 因为那样可能更好。我决定参加onclick的一个活动是“批量:停止”

我的代码:

 var variable =  new joint.shapes.basic.Rect({
     name : label,
     id: label,
     onclick : function () {alert("hello");},
     size: { width: width, height: height },
     attrs: {
         text: { text: label, 'font-size': letterSize, 'font-family': 'monospace' },
         rect: {
             fill : fillColor, 
             width: width, height: height,
             rx: 5, ry: 5,
             stroke: '#555'
         }   
     }   
 }); 
 variable.on('batch:stop', function (element) {alert(""); toggleEvidence(element.name);});
 return variable;

我应该如何添加onclick事件?

JointJS形状是模型,因此您可以说单击处理程序对它们不起作用。JointJS文件触发可能对您有用的事件:

paper.on('cell:pointerdown', 
    function(cellView, evt, x, y) { 
        alert('cell view ' + cellView.model.id + ' was clicked'); 
    }
);
其他事件有:cell:pointerup、cell:pointerdblclick、cell:pointermove

完整列表可在此处找到:

编辑


从JointJS v0.9开始,还有一个
单元格:pointerclick
事件。

您还可以使用主干网本身将特定事件附加到特定模型。JointJS只是引擎盖下的主干

const newElement = new jointjs.shapes.devs.Model({....});
graph.addCell(newElement);

newElement
  .findView(paper)
  .$el.find('.Settings') // this is nested in the model / cell
  .click(() => {
    // do something
  });

谢谢我阅读了错误的事件文档,因为我认为它与元素对象有关。@dave你能回答这个问题吗?我试图在单击jointjs元素内的html链接时触发一个函数。如何做到这一点?