如何使用鼠标检测实际点击或在标签按钮上使用.click()?

时间:2016-09-05 20:25:33

标签: javascript javascript-events

我想检测一些用户是否真的点击了投票按钮或使用了click()函数。我的投票按钮位于按钮标签或标签中。

1 个答案:

答案 0 :(得分:1)

HTMLElement.click函数会触发click事件。它不会触发mousedownmouseup事件。这并不是说没有人可以触发mousedownmouseup事件,但如果您要排除触发click事件的javascript代码的情况,您可以直接听取{ {1}}或mousedown个事件。

这是一个ES6示例。

mouseup
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);

如果您不关心Internet Explorer或Safari(老实说,谁做),您可以使用Event.isTrusted

这是另一个ES6示例。

<a href="#" id="demo1">Demo 1</a> <a href="#" id="demo2">Demo 2</a>
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);