ドキュメントのこの例:
cy.on('click', function(evt){
console.log( 'clicked ' + this.id() );
});
結果:
Uncaught TypeError: Object [object Object] has no method 'id'
そして evt.cyTarget.data() は undefined を返します。
ドキュメントのこの例:
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() );
});
データにアクセスするためのドキュメントに記載されているように、メソッドを使用して要素データにアクセスしますeles.data()
。あなたの場合、IDをノード名として定義したことになります。それなら、単に呼び出すだけです
console.log('clicked ' + this.data('id'));