使用JavaScript检测页面中的任何鼠标事件
Detect any mouse event in the page using JavaScript
我想用Javascript为任何可能的鼠标事件编写一个通用的eventListener
。
我正在尝试编写一个eventListener
,它可以处理网页内的任何鼠标移动、任何类型的按压、滚动以及使用鼠标可以完成的所有操作。
我没有找到一个好的方法来做这件事,也是因为我需要使用纯Javascript,而不使用jQuery或任何其他库,只使用简单的DOM元素和函数。
有人能告诉我如何通过编写一个好的处理程序(而不是为每个可能的事件编写一个处理程序)来完成吗?
您可以为所有鼠标事件添加事件侦听器,但使用相同的处理程序函数。类似这样的东西:
function bindEventsToSameHandler(element, events, handler) {
for(var i = 0; i < events.length; i++) {
element.addEventListener(events[i], handler);
}
}
// ...
// usage
var element = document.getElementById('selector'); // select the element on which to handle mouse events
var events = ['click', 'mouseup', 'mousedown']; // add mouse events you want to handle
bindEventsToSameHandler(element, events, function() {
// your handler code goes here
});
注意:这适用于任何事件,而不仅仅是与鼠标相关的事件
这里有一个例子:
function bindEventsToSameHandler(element, events, handler) {
for(var i = 0; i < events.length; i++) {
element.addEventListener(events[i], handler);
}
}
// usage
element = document.getElementById('capture');
events = ['click', 'dblclick', 'mouseup', 'mousedown']; // add your events here
bindEventsToSameHandler(element, events, function(e) {
console.debug('handled ' + e.type);
});
#capture {
width: 100%;
height: 100%;
border: 1px solid black;
padding: 100px;
}
<body>
<p id='capture'>CAPTURE EVENTS BOX</p>
</body>
相关文章:
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- pixijs 鼠标关闭事件不起作用(任何版本)
- 倒数计时器在任何用户活动(例如 onkeyup、鼠标移动等)上重置
- 在鼠标悬停/鼠标出类中的任何元素时更改元素 ID
- jQuery - 当我的鼠标悬停在任何单词上时,如何获取任何单词的值
- 鼠标在全屏+指针锁定状态下按下任何键时都不会启动
- 使用JavaScript检测页面中的任何鼠标事件
- 如何在开始拖动任何对象时使iframe跟随鼠标光标
- Slimscroll对鼠标悬停(或任何东西)没有反应
- 当鼠标单击正文中的任何位置时,页面向上滚动
- 如何使鼠标火在任何地方
- 是否有任何javascript库来捕获鼠标/键盘事件并将它们发送到外部服务器
- 鼠标悬停事件可以用在任何元素上,还是只能用在图像上?
- 将鼠标悬停在任何元素上-& #160;
- 如何模拟鼠标点击任何HTML元素(iframe,对象等)从Firefox扩展
- 任何让文本区域跟随鼠标的方法
- 如何在没有任何鼠标事件的情况下默认显示标记内容
- 如何(完全)禁用和启用jQuery中的任何鼠标侦听器
- 鼠标悬停在IE中不执行任何操作
- jQuery/JavaScript可能的方法来检测是否有任何其他键,不包括鼠标左键或右键被使用