javascript - 如何检查哪个按钮被点击

标签 javascript

我的问题有点奇怪,因为我有两个 html 按钮 作为

<button>ok</button>
<button>ok</button>

我正在像这样在它们上附加 onclick 事件

var buttons=document.getElementsByTagName('button');
for(var i=0;i < buttons.length; i++){
  buttons[i].onclick = function() {  
      focus = this;
      alert("ok i am clicked")
  }
}

现在我正在做

现在我在窗口上附加了一个事件

window.onclick = function(e) {
    console.log(e.target == focus)
}

根据我的说法,如果我点击first按钮,这个console.log(e.target == focus)条件应该是true,但是对于第二个按钮来说它也是true!

请告诉我哪里错了,请提供vanilla JavaScript解决方案,在我的场景中我无法使用id我会非常感谢你:)

here是它的垃圾箱。

最佳答案

从编辑来看,您的问题的解决方案非常简单:

您在单击每个按钮时设置 focus 元素,然后窗口监听器将触发并检查目标(按钮)是否是 focus 元素。

显然,它总是正确的,因为您只是将其设置为 focus 元素。

您可以使用 target.addEventListener(type, listener, useCapture); 添加窗口监听器并将 useCapture 设置为 true
然后它会在按钮的 onclick 之前触发,并且您必须单击两次才能使回调返回 true。

关于javascript - 如何检查哪个按钮被点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31375605/

相关文章:

javascript - php div刷新而不重新加载页面

javascript - 在 Phaser.IO 中沿着预定义的路径移动 Sprite

javascript - 将最后一个 td 带到 tr knockout 中的下一行

javascript - 如何在 JS 中循环遍历多级对象?

Javascript 查询索引

javascript - 使用 jQuery 选择元素并放入数组中以修改 css

javascript - CDNJS 的 fullcalendar.js 不起作用?

javascript - 如何使用jquery显示ajax模式弹出窗口?

javascript - 获得youtube视频标题

javascript - FullPage.js:div 定位问题