Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在OOP JavaScript中单击元素时获取“this”_Javascript_Oop - Fatal编程技术网

如何在OOP JavaScript中单击元素时获取“this”

如何在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中选择第一个

我有以下几点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中选择第一个对象。我如何才能做到这一点?

请尝试将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。