如果在对象上触发了dispatchEvent,我如何才能找到如何侦听它以及在哪里调度事件

Having a dispatchEvent triggered on an object how can I find out how to listen to it and where the event is dispatched?

本文关键字:何侦听 事件 调度 在哪里 对象 dispatchEvent 如果      更新时间:2023-09-26

我有一些其他人构建的代码,当事件被调度时,我正试图更改一些表单值

这是的代码行

_instance.dispatchEvent ( "ADD_ROW",  { 'container' : $li, 'value' : data } );

在全球范围内,我似乎做不到的是做这样的

someGlobalVariable.addEventListener('ADD_ROW', function (e) { console.log(11111); }, false);

document.querySelector('body #an_id').addEventListeneraddEventListener('ADD_ROW', function (e) { console.log(11111); }, false);

我不知道ADD_ROW被添加到哪里,也不知道我必须查看什么全局对象

_console.log 上的实例如下

Object { _listenerMap: Object, indexOfListener: AbstractEventDispatcher/instance.indexOfListener(), addEventListener: AbstractEventDispatcher/instance.addEventListener(), removeEventListener: AbstractEventDispatcher/instance.removeEventListener(), hasEventListener: AbstractEventDispatcher/instance.hasEventListener(), dispatchEvent: AbstractEventDispatcher/instance.dispatchEvent(), release: AbstractEventDispatcher/instance.release(), rowCount: JSONFieldSetList/_instance.rowCount(), addRow: JSONFieldSetList/_instance.addRow(), deleteRow: JSONFieldSetList/_instance.deleteRow(), 4 more… }

有没有一种方法可以跟踪正在发生的事情以及事件的发送地点?

这个_instance对象是某个框架的一部分吗?或者它只是某个地方的局部变量,而你不知道它是如何创建的?

无论如何,如果其dispatchEvent方法的行为与EventTarget接口中定义的一样,那么_instance引用的对象就是目标。对象不需要是节点,也不需要在DOM中成为有效的事件目标,它只需要实现EventTarget。例如,XHR对象和EventSource对象可以侦听DOM事件,但这些事件不会遍历HTML DOM到达那里。

您是否可以不将侦听器添加到_instance或保留对_instance的全局引用?

我设法通过添加自己的事件来解决它。

$li.trigger('ADD_ROW');

+

$('body').on('ADD_ROW', '.multi-field-set-bottom-links.row.multi-field-set-row', function(){});

Thx