首页 > 解决方案 > 如何将 setTimeout() 添加到查询选择器

问题描述

我有一个 JS 脚本

<script>
  document.querySelectorAll('.stylebutton').forEach(function(e) {
  e.addEventListener('click', function() {
    this.style.backgroundColor = 'black';
  })
});
</script>

我想在运行前等待 10 秒。我努力了

<script>
  document.querySelectorAll('.stylebutton').forEach(function(e) {
  e.addEventListener('click', setTimeout(function() {
    this.style.backgroundColor = 'black';
  }),10000)
});
</script>

但我得到一个控制台错误can not define this

标签: javascript

解决方案


setTimeout应该在回调中调用。

document.querySelectorAll('.stylebutton').forEach(function(e) {
  e.addEventListener('click', function() {
    setTimeout(()=>this.style.backgroundColor = 'black', 10000);
  })
});

推荐阅读