用户如何识别任何事件

时间:2014-12-04 13:49:58

标签: jquery events

有这么多不同的设备,做了很多不同的事情,我认为创建一个通用的监听器可能会有用。 This是我的简单尝试,当然不能奏效。但它可能会刺激某人提出一个真正的解决方案: -

$("#allEvents").on("*", function(evnt) {
    console.log(evnt.type);
});

<div id="allEvents">
    this is some text inside div allEvents
</div>

或者,是否存在可以告诉用户在他们的设备上执行某些操作时会触发哪些事件的内容?

1 个答案:

答案 0 :(得分:0)

最接近的是获取浏览器支持的所有事件并将其放入数组中然后绑定到它并检查event.type。为此,我们将使用Object.keys获取document的键,然后我们将过滤掉仅包含事件并从中删除“on”前缀。

现在,我们已经获得了浏览器支持的一系列事件,没有“on”前缀,我们可以与Array.join(" ")一起加入,然后我们可以使用e来检查事件的类型

var arr = Object.keys(document).filter(function(x) {
    return x.indexOf("on") == 0
}).map(function(x) {
    return x.replace("on", "");
});
$('#allEvents').on(arr.join(" "), function(e) {
    console.log(e.type);
});