在鼠标光标位置添加 cytoscape 节点

Pra*_*tal 5 javascript graph cytoscape.js

我想在画布上的单击事件上的鼠标箭头位置添加一个 cytoscape 节点。

我怎样才能做到这一点?

我的方法:(效果不太好)

我可以通过单击创建一个节点,但无法确保创建的节点的位置位于我单击的位置。使用这样的东西:

$("#cy").click(function(event){

    pos = getMousePosition(this, event)

    cy.add([
      { group: "nodes", data: { id: "testid" }, position: pos },
    ]);
});
Run Code Online (Sandbox Code Playgroud)

我一直无法getMousePosition()正确定义。我应该如何定义这个函数以使节点呈现在正确的位置,而不管 cytoscape 画布的位置如何?

max*_*anz 4

鼠标使用屏幕上渲染的坐标。如果您想在特定的渲染位置添加节点,最简单的方法是在渲染坐标中指定新节点位置,例如:

cy.add([
  { group: "nodes", data: { id: "testid" }, renderedPosition: rpos } // , ...
]);
Run Code Online (Sandbox Code Playgroud)

然后传递渲染的鼠标位置(相对于 cy.js div)变得微不足道,例如http://api.jquery.com/position/