我的问题有点奇怪,因为我有两个 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/