如何使用鼠标或在标签按钮上使用.click()来检测真正的点击

How to detect real click using mouse or using .click() on tag button , a?

本文关键字:检测 click 鼠标 何使用 标签 按钮      更新时间:2023-09-26

我想检测我的一些用户是否真的点击投票按钮或使用click()功能。我的投票按钮在按钮标签或标签中

HTMLElement.click函数触发click事件。不触发mousedownmouseup事件。这并不是说没有人可以触发mousedownmouseup事件,但是如果你想排除触发click事件的javascript代码的情况,你可以简单地监听mousedownmouseup事件。

下面是一个ES6的例子。

const demo1 = document.getElementById('demo1');
const demo2 = document.getElementById('demo2');
demo1.addEventListener('click', e => {
    demo2.click();
},  false);
demo2.addEventListener('mousedown', e => { 
    console.log('clicked');
},  false);
<a href="#" id="demo1">Demo 1</a> <a href="#" id="demo2">Demo 2</a>

如果你不在乎ie或Safari(老实说,谁在乎呢),你可以使用Event.isTrusted

下面是另一个ES6的例子。

const demo1 = document.getElementById('demo1');
const demo2 = document.getElementById('demo2');
demo1.addEventListener('click', e => {
    demo2.click();
},  false);
demo2.addEventListener('click', e => { 
    console.log(['not trusted', 'trusted'][+e.isTrusted]);
},  false);
<a href="#" id="demo1">Demo 1</a> <a href="#" id="demo2">Demo 2</a>