首页 > 解决方案 > 查看当前附加的事件监听器列表

问题描述

我想检查添加的事件侦听器列表。例如,我使用了代码cy.on('pan zoom resize', update);并添加了update在 for 循环中调用的函数。我这样做很多次。我也呼吁cy.off('pan zoom resize', update);删除事件侦听器,但我想确定一下。

我能想到的唯一想法是使用console.log,但这种方法可能没有帮助。

我还认为在某些地方人们忘记删除事件侦听器并且总是添加。如果重复次数过多,这可能会导致问题。

标签: cytoscape.js

解决方案


私有 cytoscape 对象中有一个数据字段,称为listeners. 你可以看到,如果你:

  • console.log()cy 对象,
  • 导航到_private,
  • 然后打开emitter对象
  • 最后去listeners

                       

这是列出所有默认和用户定义的事件侦听器的数组,其中包含一些元数据,例如侦听器的事件、类型和范围。

您可以通过简单地调用在您的代码中访问它

cy.emitter().listeners

现在的问题是,为什么您首先需要这些信息?通常,如果您cy.off('eventXY', ...)在使用之前调用 any应该没问题cy.on('eventXY', ...)。你确定你的应用程序需要这个吗?也许更详细地阐述核心问题(为什么你首先需要这些信息)。

谢谢,祝你有美好的一天!


推荐阅读