2017-03-27 21 views
0

Aus was ich bis jetzt inspiziert habe, ist das Link-Ziel nie null, und deshalb habe ich Probleme. Ich möchte das Ereignis auslösen, wenn ich meinem Link zu einem Punkt (Objekt) beitrete, ich möchte es nicht jedes Mal auslösen, wenn ich es umherbewege und es nicht mit irgendetwas verbinde. Gibt es eine Möglichkeit, dieses Änderungsereignis zu überschreiben? Oder lösen Sie die Änderungen aus, wenn ich meine Verknüpfung gezogen habeJointJS Link-Änderung: Ziel löst jedes Mal

this.graph.on('change:target', function(cell) { 
    if (cell.isLink()) { 
    // Any code here will trigger every time I drag my link 
    // There is no way I can add if else here to solve my problem 
} 
}); 

Antwort

0

Ich habe die Lösung gefunden. Ich benutzte den falschen Handler für meinen Zweck. Anstatt den Graph-Handler zu benutzen, musste ich den Papierhandler benutzen.

'Zelle: pointerup' - ausgelöst, wenn ein Zeiger auf ein Papier

freigegeben wird diese
this.paper.on('cell:pointerup', function(cellView, event) { 
    var cell = cellView.model; 
    if (cell.isLink()){ 
     if (cell.get('source').id ==null || cell.get('target').id == null) { 
     cell.remove(); 
     } 
    } 
    }); 
0

versuchen:

paper.on('link:disconnect', function(linkView, evt, disconnectedFromView, magnetElement, type) { 
    console.log('link:disconnect', type, disconnectedFromView, magnetElement); 
}); 

paper.on('link:connect', function(linkView, evt, connectedToView, magnetElement, type) { 
    console.log('link:connect', type, connectedToView, magnetElement); 
}); 
Verwandte Themen