如何将这个元素从事件监听器的函数内部传递给另一个函数?[重复]

问题描述 投票:0回答:1

我有一个事件监听器的父div和一个按钮使用相同的功能。而父div的一个,我只希望它去我的函数,如果父区域是点击,而不是它的孩子。这是我目前所做的。

btn.addEventLister("click", myFunction);

div.addEventListener("click", function (e) {
      if(e.currentTarget === e.target){
         myFunction();
      }
   }); 

function myFunction() {
  var type = this.getAttribute('data-type');
  // do something here
}

btn监听器工作,但不知为何div监听器不工作。不知何故,它好像没有识别 "this"。有什么办法可以解决这个问题吗?

javascript javascript-events
1个回答
2
投票

你需要明确地传递按钮......例如,用

 myFunction.call(btn);

这段代码基本上调用了函数设置 thisbtn

© www.soinside.com 2019 - 2024. All rights reserved.