2016-11-30 7 views
1
そうのように、ポートのような「追加」ボタンをクリックしたときに私はプログラム的JointJSに半円形のポートを追加しているよ

にポートを追加します。 私が作成した​​JointJSは、クリック

基本的なポートを、そして私はelement.addPort(port, [opt]) を使うことができるように見えますが、ポートを追加するためにrectangle要素の中でどのようにクリックイベントをトリガーするのか分かりません。追加ボタンとポートのスタイリングも、ジョイントで再作成しようとしているものです。これらのステップに続いて

答えて

1

お手伝いをする必要があります:すべての

  1. まず、あなたはその上にカスタムHTMLを持つ要素を作成する必要があります。あなたはjoint.shapes.devs.Modelを拡張することでそれを達成できます。あなたはここでそれについての素晴らしいチュートリアルを見つけることができます:https://stackoverflow.com/a/31650340/4109477(ヒント:半円形のSVGパスは次のとおりです。 D = "M100,100 A20その後、あなたはここで説明したようにカスタムポートを定義に持ってhttp://resources.jointjs.com/tutorial/html-elements
  2. 、20 0 0,0 40,0 ")
  3. 最後に、element.addPort(ポート、[opt])機能をカスタムHTMLエレメントのボタンをクリックすると呼び出すだけです。

希望します。

+0

ありがとうFrakas!要素の上にカスタムHTMLを作成すると、標準要素が持つドラッグハンドルを使用できないという問題が発生しています。これを引き起こしている可能性があることは分かりますか? –

+0

イベントがJointJS要素に確実に伝播するように、メインのHTMLに 'pointer-events:none;'スタイルを追加する必要があります。ドラッグは機能します。 「通常の」方法でHTMLの一部とやりとりしたい場合、たとえばJointJs要素にあるボタンをクリックしたい場合は、そのボタンのスタイルを_pointer-events:auto; _ –

関連する問題