单一事件处理程序的所有事件javascript/jQuery
Single Event Handler for all events javascript/jQuery
我知道我可以使用jQuery有一个处理程序处理多个事件,如:
$('#myID').bind('blur mousedown mouseup focus', function (e) {}
另外,我可以使用jQuery从所有元素注册一个事件,如:
$(document).on("click", "*", function(event) {
console.log("Click");
});
我有两个问题:
如何在纯javascript中为多个事件注册单个侦听器?
是否有任何方法可以使用JS或jQuery在文档中为所有事件提供单个处理程序,就像主处理程序一样,将事件委托给我的其他处理程序?
我正在看这样的东西:
$(document).on("*", "*", function(event) {
console.log("I am the master handler...");
// call delegates
});
这是最接近javascript的:JSBIN-Demo
<input type="text" id="myText" />
var allEvents = ['focus','blur','mouseover','mousedown','mouseup','mousemove', 'click'];
function masterHandler(){
var event = event || window.event;
switch(event.type){
case 'click':
console.log('cliked');
break;
case 'mouseover':
console.log('mouseover');
break;
}
}
function bindAllEvents(selector, handler) {
var elements = document.querySelectorAll(selector);
for(var i=0;i<elements.length;i++){
for (var key in allEvents){
elements[i].addEventListener(allEvents[key], handler, false);
}
}
}
bindAllEvents('*', masterHandler);
相关文章:
- 召回窗口加载事件 - javascript
- 动态创建OnClick事件Javascript
- 全局屏幕span onclick触发一个事件javascript
- 使用react js在跨域上执行事件javascript
- 在change事件javascript上动态添加行
- 在粘贴事件Javascript的输入字段中删除所有非数字字符
- 如何在多表单的输入框中使用输入事件javascript
- 无法查看特定信息.单击事件.Javascript
- 两个文本框事件Javascript
- 阻止鼠标滚轮滚动,但不阻止滚动条事件.JavaScript
- 从 onkeydown 事件 (Javascript) 获取当前用户输入
- “稍后提醒我”/“快速事件”JavaScript解决方案
- 更改我正在侦听的事件Javascript的对象的CSS
- setInterval 不允许同时单击事件 - javascript
- 对每种情况使用一个事件(JavaScript 开关)
- 仅创建第二次点击事件 Javascript
- 每 60 秒仅启动一次事件 (JavaScript)
- 如何连接来自不同文件的事件?Javascript/Backbone
- URL 更改事件 - JavaScript
- 无法在无头模式下使用 watir Webdriver 执行按钮元素的 onclick 事件 javascript