8

ドキュメントのこの例:

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

結果:

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

そして evt.cyTarget.data() は undefined を返します。

4

3 に答える 3

10

.id() 関数は要素に対して機能しますが、イベント ハンドラーに要素がありません。デリゲート要素セレクターなしでコアにバインドしたため、コア自体にバインドしました。つまり、 へのthisポイントへの参照を意味しcyます。

これはおそらくあなたが意図したものです:

cy.on('click', 'node', function(evt){
      console.log( 'clicked ' + this.id() );
});
于 2013-02-07T18:07:56.863 に答える
3

データにアクセスするためのドキュメントに記載されているように、メソッドを使用して要素データにアクセスしますeles.data()。あなたの場合、IDをノード名として定義したことになります。それなら、単に呼び出すだけです

console.log('clicked ' + this.data('id'));
于 2013-02-07T10:23:21.913 に答える