我试图弄清楚某些自定义事件何时被触发。这个网站是用jQuery设计的。所以我想为所有自定义 .trigger
事件添加一个事件监听器。我试过了:
$('*').on('*', function(e) {
console.log('custom event name that just triggered:', e.eventName, 'selector of element that it triggered on:', e.target);
});
这没有用。我知道如果我看到所有这些都是糟糕的,那么这就是为什么我不想看标准事件,只看自定义事件。
答案 0 :(得分:1)
您可以通过这种方式生成添加到网页中的所有活动的列表,但我建议您不要在生产代码中执行此操作。如果您可以完全避免这样做,那就太棒了,但基本上您希望在加载页面上的任何其他JavaScript之前运行以下代码段。
var events = {};
var original = window.addEventListener;
window.addEventListener = function(type, listener, useCapture) {
events[type] = true;
return original(type, listener, useCapture);
};
这将为您提供一个对象,其键是您的触发器。
然后,您可以使用这些键生成一个可以传递给jQuery的事件的字符串列表。
var list = Object.keys(events).join(" ");
$('*').on(list, function(e) {
console.log(
'custom event name that just triggered:', e.eventName,
'selector of element that it triggered on:', e.target);
});