Javascript 有没有办法找回在原型中使用event.observe注册的匿名事件处理程序?

Javascript 有没有办法找回在原型中使用event.observe注册的匿名事件处理程序?,javascript,events,prototypejs,Javascript,Events,Prototypejs,与遗留代码交互,我得到了如下内容: Event.observe(some_form, 'submit', [some anonymous function]) 我想拿回那个匿名事件处理程序,在Prototype中有没有一个简单的方法可以做到这一点?如果你真的想访问这个处理程序,没有,没有简单的方法。当然,您可以停止观察事件类型的所有原型启动的处理程序,但我认为这不是您要寻找的。如果您确实想要访问该处理程序,不,没有简单的方法。当然,您可以停止观察某个事件类型的所有原型启动的处理程序,但我认为这

与遗留代码交互,我得到了如下内容:

Event.observe(some_form, 'submit', [some anonymous function])

我想拿回那个匿名事件处理程序,在Prototype中有没有一个简单的方法可以做到这一点?

如果你真的想访问这个处理程序,没有,没有简单的方法。当然,您可以停止观察事件类型的所有原型启动的处理程序,但我认为这不是您要寻找的。

如果您确实想要访问该处理程序,不,没有简单的方法。当然,您可以停止观察某个事件类型的所有原型启动的处理程序,但我认为这不是您要寻找的。

如果在
某些表单上没有太多其他侦听器
+
提交
-事件,或者您可以控制所有其他可以使用的侦听器

var boundSubmitEvents = some_form.getStorage().get('prototype_event_registry').get('submit');
boundSubmitEvents.each(function(wrapper){
    //do with wrapper.handler whatever
})
顺便说一句,你说的是什么意思

抓回那个匿名事件处理程序 出去


如果
某些表单
+
提交
-事件上没有太多其他侦听器,或者您控制了所有其他侦听器,则可以使用

var boundSubmitEvents = some_form.getStorage().get('prototype_event_registry').get('submit');
boundSubmitEvents.each(function(wrapper){
    //do with wrapper.handler whatever
})
顺便说一句,你说的是什么意思

抓回那个匿名事件处理程序 出去


这取决于原型的版本。从更一般的答案来看:

  • 1.5.x版:

    // inspect
    Event.observers.each(function(item) {
        if(item[0] == some_form && item[1] == 'submit') {
            alert(item[2]) // [some anonymous function]
        }
    })
    
  • 版本1.6至1.6.0.3,包括在内(此处变得非常困难)


这取决于原型的版本。从更一般的答案来看:

  • 1.5.x版:

    // inspect
    Event.observers.each(function(item) {
        if(item[0] == some_form && item[1] == 'submit') {
            alert(item[2]) // [some anonymous function]
        }
    })
    
  • 版本1.6至1.6.0.3,包括在内(此处变得非常困难)


正是我想要的,谢谢。看起来我们使用的是1.6.0.3,但我得到的是Event.cache未定义=(@gct:
Event.cache
是通过简单地包括1.6.0.3:()来设置的。我猜
submitEvents
变量是未定义的。当没有任何
submit
处理程序与原型绑定时,就会发生这种情况(阅读:不包括您正在检查的点上的
onsubmit=“…”
)需要查看更多代码以进一步帮助。这正是我想要的,谢谢。看起来我们使用的是1.6.0.3,但我得到了该事件。缓存未定义=(@gct:
Event.cache
仅通过包含1.6.0.3:()。我猜
submitEvents
变量是未定义的变量。如果在检查时没有任何与原型绑定的
submit
处理程序(读取:不包括
onsubmit=“…”
),则可能会发生这种情况。需要查看更多代码以进一步提供帮助。