首页 > 解决方案 > 如何从事件侦听器的内部函数将此元素传递给另一个函数?

问题描述

我有一个父 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 监听器不工作。不知何故,它似​​乎不承认“这个”。知道如何解决这个问题吗?

标签: javascriptdom-events

解决方案


您需要明确传递按钮...例如

 myFunction.call(btn);

此代码基本上调用功能this设置btn


推荐阅读