我有以下一点JS:
bindEvents: function() {
this.extra.bind("click", {context: this}, this.checkPackage.bind(this));
},
checkPackage: function(e) {
console.log(e.data.context);
}
我想要的是checkPackage
方法与$(this).whatever
类似,但我似乎无法访问点击的对象。它只是使用this.extra
类从DOM中选择第一个对象。我怎么能做这个工作?
答案 0 :(得分:2)
尝试e.currentTarget
作为附加eventlistener的对象。 e.target
将为您提供实际点击的对象(可能不同)。
答案 1 :(得分:1)
您可以尝试e.target
获取点击的元素。
bindEvents: function() {
this.extra.bind("click", {context: this}, this.checkPackage.bind(this));
},
checkPackage: function(e) {
console.log(e.target);
}
答案 2 :(得分:1)
您可以参考jQuery event docs,但摘要如下:
<强> event.currentTarget 强>
事件冒泡阶段中的当前DOM元素。
<强> event.delegateTarget 强>
当前调用的jQuery事件处理程序所在的元素 附接。
<强> event.relatedTarget 强>
事件中涉及的其他DOM元素(如果有)。
<强> event.target 强>
发起事件的DOM元素。
在您的情况下。您可以使用以下代码
bindEvents: function() {
this.extra.bind("click", {context: this}, this.checkPackage.bind(this));
},
checkPackage: function(e) {
console.log(e.currentTarget);
}