如何在事件监听器中传递 'this' 参数?
addEventListener('keydown', myFunction),removeEventListener('keydown', myFunction)
怎么在myFunction传参数 this?
function myFunction(_this){
  console.log(_this)
}解决方法:
<body>
  <button onclick="onRemoveEventListener()">removeEventListener</button>
  <div class="container">123</div>
  <script>
    // 点击事件函数
    const eventClickFunc = (e) => {
      handleDivClick(e, this)
    }
    const container = document.querySelector('.container')
    container.addEventListener('click', eventClickFunc)
    // 监听 click
    function handleDivClick(e, _this) {
      console.log(e.target, _this);
    }
    // 取消监听 click
    function onRemoveEventListener() {
      console.log(1);
      const container = document.querySelector('.container')
      container.removeEventListener('click', eventClickFunc)
    }
  </script>
</body>回复
1个回答

test
2024-06-23
<input type="text" id="i" />
<script type="text/javascript">
  function myFunction(_this, e) {
    console.log(_this, e);
  }
  document.querySelector("#i").addEventListener("keydown", function (event) {
    myFunction(this, event);
  });
</script>
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容
