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

NodeListonから:

デフォルトでは、thisオブジェクトは、イベントを受信したものではなく、NodeListサブスクリプションが発生したものになります。を参照するために使用します。Nodee.currentTargetNode

于 2012-05-03T16:59:12.310 に答える