我希望能够在原型中使用绑定的事件处理程序并保留我的“this”上下文。但是这样做似乎破坏了原型给予事件处理程序的方便的默认绑定。在原型中绑定事件处理程序并仍然保持对元素的引用
从文档:
处理程序的情况下(此值)设置为被观察的展元件(即使实际发生的后代元素上的事件和冒泡)。
这正是我想要的。一旦我将函数绑定到自己的上下文中,是否可以以任何方式访问此“正在观察的元素”?我不能依赖于e.element()给我所观察到的元素(可以是一个子元素):
initialize: function() {
Event.observe('foo', 'click', this.addItem.bind(this));
},
...
addItem: function(e) {
e.element() // -> clicked element, not necessarily observed element
}
我知道,有一个bindAsEventListener,但它似乎没有必要在这里而且我没有看到一旦函数绑定后我如何访问目标元素。
我也知道有一个e.currentTarget,但在IE中不起作用,是吗?