Как добавить событие onclick в элемент joint.js?

У меня есть элемент joint.js в DAG и хотел бы иметь возможность запускать событие, щелкнув по нему.

Я мог бы использовать $(selector).click(...), чтобы сделать это, но мне было интересно, существует ли какой-либо конкретный способ совместной работы. так как это было бы неплохо. Одним из событий, которые я решил, был кандидат на onclick, был "batch: stop"

Мой код:

 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?

Ответ 1

Формы 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.

Полный список можно найти здесь: http://jointjs.com/api#joint.dia.Paper:events.

ИЗМЕНИТЬ

Начиная с JointJS v0.9, также существует событие cell:pointerclick.