2016-11-30 3 views
1

Ich suche Halbkreis Ports in JointJS programmatisch hinzuzufügen, wenn auf einem Port-like "hinzufügen" klicken, etwa so: mockupJointJS Hafen auf Klick

Ich habe erstellt Grund Ports und es sieht so aus, als könnte ich element.addPort(port, [opt]) verwenden, aber ich bin mir nicht sicher, wie ich ein Click-Ereignis innerhalb des Rechteckelements auslösen würde, um den Port hinzuzufügen. Das Styling des Hinzufügen-Buttons und der Ports versuche ich auch noch mit Joint neu zu erstellen.

Antwort

1

dieser Schritte sollen Ihnen helfen:

  1. Zunächst einmal müssen Sie ein Element erstellen mit benutzerdefinierten HTML darüber hinweg. Sie können dies erreichen, indem Sie das joint.shapes.devs.Model erweitern. Sie können ein großes Tutorial darüber finden Sie hier: http://resources.jointjs.com/tutorial/html-elements
  2. Dann haben Sie einen eigenen Port definieren wie hier erklärt: https://stackoverflow.com/a/31650340/4109477 (Hinweis: die SVG-Pfad eines Halbkreises ist: d = "M100,100 a20 20 0 0,0 40,0")
  3. schließlich nur Sie Anruf haben den element.addPort (Port, [opt]) Funktion, wenn der Knopf in Ihrem benutzerdefinierten HTML-Elemente geklickt wird.

Ich hoffe, es hilft.

+0

danke Frakas! Ich sehe ein Problem, bei dem das Erstellen des benutzerdefinierten HTML-Elements über das Element verhindert, dass ich den Ziehpunkt verwenden kann, den das Standardelement hatte. Weißt du, was das verursachen könnte? –

+0

Sie müssen 'pointer-events: none;' style zu Ihrem Haupt-HTML hinzufügen, um sicherzustellen, dass Ereignisse an das JointJS-Element weitergegeben werden, z. Ziehen funktioniert. Wenn Sie mit einem Teil des HTML auf die "übliche" Weise interagieren möchten, zum Beispiel wenn Sie auf eine Schaltfläche klicken möchten, die sich auf Ihrem JointJs-Element befindet, müssen Sie seinen Stil (nur den Button) festlegen _pointer-ereignisse: auto; _ –