2013-02-06 4 views

답변

3

documentation for accessing data에서 언급했듯이 eles.data() 메서드를 사용하여 요소 데이터에 액세스합니다. 귀하의 경우는 다음 기능 요소에서 작동()을 .ID

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

덕분에,이 결과

cy.on('click', 'node', function(evt){ console.log('clicked ' + this.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('tap', 'node', function (evt) { 
     console.log(evt.cyTarget.id()) 
    }); 

또는 3.x를위한

:

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

코드가 작동하지만, 왜 예제가 cytoscape.js 웹 사이트의 코드로 인해 ID 오류가 발생하지 않습니다. ('탭'+ 노드 .id()); }); –

+0

델리게이트 선택자 때문에'evt.target'는 반드시 노드입니다. – maxkfranz

5

내가 2.x는이를 사용 : 잡히지 않은 TypeError : 정의되지 않은 속성 'id'를 읽을 수 없습니다