gpt4 book ai didi

javascript - 所有事件的单个事件处理程序 javascript/jQuery

转载 作者:太空狗 更新时间:2023-10-29 13:52:11 26 4
gpt4 key购买 nike

我知道我可以让一个处理程序使用 jQuery 处理多个事件,例如:

$('#myID').bind('blur mousedown mouseup focus', function (e) {}

此外,我可以使用 jQuery 从所有元素注册一个事件,例如:

$(document).on("click", "*", function(event) {
console.log("Click");
});

我有两个问题:

  1. 如何在纯 javascript 中为多个事件注册单个监听器?

  2. 有没有什么方法可以使用 JS 或 jQuery 为文档中的所有事件设置一个单一的处理程序,例如将事件委托(delegate)给我的其他处理程序的主处理程序?

我正在看这样的东西:

$(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 - 所有事件的单个事件处理程序 javascript/jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14019780/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com