2013-02-06 8 views

答えて

3

documentation for accessing dataで説明したように、eles.data()メソッドで要素データにアクセスします。あなたのケースでは、それはあなたが、それは.ID()関数は、要素上で動作しますが、あなたはあなたの中の要素を持っていない

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

おかげで、これは、その結果: Uncaught TypeError:未定義のプロパティ 'id'を読み取れません –

+0

実際には、これを行うと機能します(hのわずかな変更ttps://github.com/cytoscape/cytoscape.js/blob/master/debug/init.js): https://gist.github.com/dtenenba/4733384 –

6

を呼び出すだけの問題だ、ノード名とIDを定義したということでしょうイベントハンドラ。デリゲート要素セレクタなしでコアにバインドしたので、コア自体にバインドしました。つまり、thisへの参照はcyを指しています。

これは、あなたが何を意味するのか、おそらくです:

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

コードが機能しますが、 cytoscape.jsウェブサイトのコードが原因でIDエラーが発生しません。ノードが存在していない場合は、ノードを削除する必要があります。ノードを削除するには、ノードを削除する必要があります。 –

+0

デリゲートセレクタのため、 'evt.target'は必ずノードです。 – maxkfranz

5

私は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()) 
    });