2013-12-09 15 views
11

Ho un elemento joint.js in un DAG e vorrei essere in grado di attivare un evento facendo clic su di esso.Come aggiungere un evento onclick a un elemento joint.js?

ho potuto utilizzare $(selector).click(...) per farlo, ma mi chiedevo se ci fosse un modo specifico joint.js di gestirlo, dal momento che sarebbe probobly essere migliore. Un evento ho deciso era un candidato per onclick era 'in lotti: stop'

Il mio codice:

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; 

Come devo aggiungere un evento onclick?

risposta

21

Le forme JointJS sono modelli, quindi hai ragione che i gestori di clic non funzioneranno su di essi. Il documento JointJS attiva gli eventi che potrebbero essere utili a voi:

paper.on('cell:pointerdown', 
    function(cellView, evt, x, y) { 
     alert('cell view ' + cellView.model.id + ' was clicked'); 
    } 
); 

altri eventi sono: cell: pointerup, cellula: pointerdblclick, cell: pointermove.

L'elenco completo può essere trovato qui: http://jointjs.com/api#joint.dia.Paper:events.

EDIT:

A partire da JointJS v0.9, v'è anche un evento cell:pointerclick.

+0

Grazie. Stavo leggendo l'aspetto sbagliato della documentazione dell'evento, poiché pensavo che sarebbe stato correlato all'oggetto Element. – ahalbert

+0

@dave potresti soddisfare questa domanda http://stackoverflow.com/questions/31794098/error-while-fetching-json-from-database – kittu

+1

Sto tentando di attivare una funzione quando viene fatto clic su un link html all'interno dell'elemento jointjs. Come può essere fatto ? – 32teeths

Problemi correlati