2013-02-06 16 views

cevap

3

documentation for accessing data'da belirtildiği gibi, öğe verilerine eles.data() yöntemiyle erişirsiniz. sizin durumda o zaman fonksiyon elemanları üzerinde çalışır() .kimlik

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

teşekkür ederiz, bu sonuçlanan

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

+0

Aslında, bunu yaptığımda çalışır (biraz değişiklik h ttps: //github.com/cytoscape/cytoscape.js/blob/master/debug/init.js): https://gist.github.com/dtenenba/4733384 –

6

arayarak meselesi, ama bir öğeyi yok düğüm adı olarak id tanımlanmış olurdu senin olay işleyicisi. Herhangi bir delege öğesi seçicisi olmadan çekirdeğe bağlandınız, böylece çekirdeğin kendisine bağlı kaldınız - ile cy arasındaki bağlantı.

Bu ne anlama geldiğini muhtemelen:

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

Ya 3.x için

:

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

Kodunuz işe yarıyor, sadece neden örnek olduğunu merak ediyorum cytoscape.js web sitesindeki kod hiçbir kimlik hatasına neden olmaz. cy.on ('tap', 'node', function (evt) { var node = evt.target; console.log ('tapped' + node.id()); }); –

+0

'evt.target', delege seçiciden dolayı mutlaka bir düğümdür. – maxkfranz

5

Ben 2.x için kullanabilirsiniz : Yakalanmayan TypeError: undefined 'id' özelliği okunamıyor
İlgili konular