【问题标题】:Is it possible to list all custom events created?是否可以列出所有创建的自定义事件?
【发布时间】:2014-07-31 15:49:49
【问题描述】:

我知道可以将事件侦听器添加到我在 Javascript 中创建的自定义事件中,如下所示:

window.addEventListener("MyCustomEvent", myFunction, false);

但是...是否可以列出所有在任何时候都存在的自定义事件?

上面一行添加了一个事件监听器,不管事件是否存在,所以我无法指出事件是否存在。

【问题讨论】:

  • 不,这是不可能的。浏览器中的控制台应该可以列出它们,Chrome有getEventListeners等,但它只用于控制台,在你的脚本中没有办法列出添加的事件监听器。
  • 感谢 adeneo。我实际上是在尝试通过控制台进行调试,但上述命令在调试模式下似乎不起作用......让我进一步解释一下 - 我必须使用 JQuery 事件触发器来创建我的自定义事件,就像通过 Javascript 创建它们一样Android 本机浏览器不支持...我宁愿不使用 JQuery CustomEvents,所以我一直在尝试弄清楚 JQuery 本身是如何创建事件的,但是对 JQuery 代码的内省可能有点令人困惑..!跨度>

标签: javascript custom-events


【解决方案1】:

这通常是个坏主意,但如果你真的需要这样做,你可以像这样重写 addEventListener 函数来跟踪添加的事件:

var events = {};
var original = window.addEventListener;

window.addEventListener = function(type, listener, useCapture) {
    events[type] = true;
    return original(type, listener, useCapture);
};

function hasEventBeenAdded(type) {
    return type in events;
}

请记住,这仅适用于在包含这段代码之后添加事件侦听器的代码。

【讨论】:

  • 嗨 Overv,感谢您的回复,尽管我可能没有像我应该做的那样清楚 - 我上面的评论更好地解释了我的要求 - 我正在调试以了解 JQuery 如何创建自定义事件,所以我可以使用该代码并在 Javascript 中实现它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-26
  • 2016-09-27
  • 1970-01-01
相关资源
最近更新 更多