如何在cytoscape.js中获取单击节点的ID



文档中的此示例:

  cy.on('click', function(evt){
      console.log( 'clicked ' + this.id() );
});

结果:

Uncaught TypeError: Object [object Object] has no method 'id' 

evt.cyTarget.data()返回undefined。

.id()函数对元素有效,但事件处理程序中没有元素。绑定到核心时没有任何委托元素选择器,因此绑定到核心本身——这意味着对this的引用指向cy

这可能就是你的意思:

cy.on('click', 'node', function(evt){
      console.log( 'clicked ' + this.id() );
});

我将其用于2.x:

    cy.on('tap', 'node', function (evt) {
         console.log(evt.cyTarget.id())
    });

或者对于3.x:

    cy.on('tap', 'node', function (evt) {
         console.log(evt.target.id())
    });

如访问数据的文档中所述,您可以使用eles.data()方法访问元素数据。在您的情况下,将id定义为节点名称,然后只需要调用

console.log('clicked ' + this.data('id'));

最新更新