如何获得"这个"在OOP JavaScript中的click元素

时间:2017-04-19 09:42:14

标签: 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中选择第一个对象。我怎么能做这个工作?

3 个答案:

答案 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);
}