0

给定一个使用 YUI 绑定到一系列链接的通用处理程序,我如何找出哪个链接触发了事件?

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
    });
});

我想我可以单独绑定每个链接,而不是使用链接列表上的“on”习语,但对我来说,YUI 不提供对 DOM 节点的访问似乎很奇怪。深入事件对象会显示几个看起来像 DOM 节点的私有字段,但肯定必须有一种安全的方法来执行此操作。

4

1 回答 1

1

e.currentTarget似乎是您正在寻找的东西:

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

NodeList 的on

默认情况下,this对象将是NodeList订阅来自的对象,而不是Node接收事件的对象。用来e.currentTarget指代Node

于 2012-05-03T16:59:12.310 回答