2012-05-03 49 views
0

给定一个绑定到YUI链接的通用处理程序,如何找出哪个链接触发了该事件?如何获取YUI事件处理程序中的DOM节点?

YUI().use('node', function (Y) { 
    var list = Y.one('#studentList'), links; 
    links = list.all('a'); 
    links.on('click', function (e) { 
     alert(this.get('id')); // this just shows a comma delimited list of all ids 
    }); 
}); 

我想我可以每个环节单独绑定,而不是使用链接列表上的“上”的成语,但它似乎有些奇怪,我认为YUI将不提供访问DOM节点。挖掘事件对象会显示几个看起来像DOM节点的私有字段,但肯定必须有一个安全的方法来做到这一点。

回答

1

e.currentTarget似乎是你在找什么:

links.on('click', function (e) { 
    alert(e.currentTarget.get('id')); 
}); 

NodeList's on

默认情况下,this对象将是NodeList认购的,不出来收到事件Node。使用e.currentTarget来指代Node

+0

谢谢@Jonathan,并感谢您的链接。 – Ishmael

相关问题