我有一个预先绑定到特定变量(通过$.proxy
)的事件处理程序。结果,触发处理程序时,this
不是正常值,而是我的预绑定值。
我想this
使用处理程序的event
参数进行恢复,但this
似乎没有直接映射到event.currentTarget
,event.target
或任何其他事件属性。
因此,我尝试挖掘 jQuery 源代码,但事件回调的东西非常复杂,我无法弄清楚到底this
设置了什么。有谁知道如何this
仅使用 event 参数来模拟 jQuery 事件处理程序?
* * 编辑 * *
只是为了澄清,这里有一个例子:
var boundThis = {foo: 'bar'}
var handler = $.proxy(function(event) {
// Because of the $.proxy, this === boundThis
// (NOT the normal "this" that jQuery would set)
// In theory event has everything I need to re-create this,
// but I'm having trouble figuring out exactly how
// Here's a naive/non-functional example of what I'm trying to do
jQueryThis = event.target; // If only this worked ...
}, boundThis);
$(someElement).click(handler);