javascript - 如何将此元素从事件监听器的内部函数传递给另一个函数?

标签 javascript dom-events

这个问题在这里已经有了答案:





How do I pass the this context to a function?

(5 个回答)



How does the “this” keyword work?

(21 个回答)


去年关闭。




我有一个父 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 监听器以某种方式不起作用。不知何故,它似​​乎无法识别“这个”。知道如何解决这个问题吗?

最佳答案

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

 myFunction.call(btn);

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

关于javascript - 如何将此元素从事件监听器的内部函数传递给另一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62363897/

相关文章:

javascript - 在 Wordpress 网站上执行自定义 css 后 JS 无法正常工作

javascript - 使用视差代码更改导航栏干扰的颜色

javascript - 有没有办法在回调中保留此引用?

javascript - iframe位置加载观察

javascript - 其他 js 事件移动设备内的 JS 事件

javascript - Lumia 640 LTE edge explorer - 未定义 javascript $

javascript - 等效于 ES6 到 ES5 中的集合

javascript - 获取 Javascript 中复选框的总值和下拉列表的选定值?

javascript - 从内部函数添加事件函数并传递元素时出现奇怪的行为

JavaScript,Divs 不会回到初始位置