如何在OOP JavaScript中单击元素时获取“this”
我有以下几点JS:如何在OOP JavaScript中单击元素时获取“this”,javascript,oop,Javascript,Oop,我有以下几点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中选择第一个
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中选择第一个对象。我如何才能做到这一点?请尝试将eventlistener连接到的对象的e.currentTarget。e、 target将为您提供实际单击的对象可能不同。请尝试将eventlistener连接到的对象设为e.currentTarget。e、 target将为您提供实际单击的对象可能不同。您可以尝试e.target获取单击的元素
bindEvents: function() {
this.extra.bind("click", {context: this}, this.checkPackage.bind(this));
},
checkPackage: function(e) {
console.log(e.target);
}
您可以尝试使用e.target来获取单击的元素
bindEvents: function() {
this.extra.bind("click", {context: this}, this.checkPackage.bind(this));
},
checkPackage: function(e) {
console.log(e.target);
}
您可以参考,但总结如下:
event.currentTarget
事件冒泡阶段中的当前DOM元素
event.delegateTarget
当前调用的jQuery事件处理程序所在的元素
附件
event.relatedTarget
事件中涉及的其他DOM元素(如果有)
事件目标
启动事件的DOM元素
在你的情况下。你可以使用下面的代码
bindEvents: function() {
this.extra.bind("click", {context: this}, this.checkPackage.bind(this));
},
checkPackage: function(e) {
console.log(e.currentTarget);
}
您可以参考,但总结如下:
event.currentTarget
事件冒泡阶段中的当前DOM元素
event.delegateTarget
当前调用的jQuery事件处理程序所在的元素
附件
event.relatedTarget
事件中涉及的其他DOM元素(如果有)
事件目标
启动事件的DOM元素
在你的情况下。你可以使用下面的代码
bindEvents: function() {
this.extra.bind("click", {context: this}, this.checkPackage.bind(this));
},
checkPackage: function(e) {
console.log(e.currentTarget);
}
这在我看来不像jquery,在我看来也不像jquery。