Javascript 将函数追加到Prototype JS中的自定义事件

Javascript 将函数追加到Prototype JS中的自定义事件,javascript,prototypejs,Javascript,Prototypejs,我正在使用一个第三方产品,我正在使用自己的自定义功能扩展UI。在这一部分中,我需要在使用AJAX调用更新UI之后调用事件。幸运的是,在调用完成后,应用程序使用Prototype JS库调用自定义事件,如下所示: $(document.body).fire("ns:customevent"); 如果我使用相同的名称添加自己的自定义事件,那么这将按预期工作 $(document).observe("ns:customevent", function(event) { //do custom

我正在使用一个第三方产品,我正在使用自己的自定义功能扩展UI。在这一部分中,我需要在使用AJAX调用更新UI之后调用事件。幸运的是,在调用完成后,应用程序使用Prototype JS库调用自定义事件,如下所示:

$(document.body).fire("ns:customevent");
如果我使用相同的名称添加自己的自定义事件,那么这将按预期工作

$(document).observe("ns:customevent", function(event) {
    //do custom stuff here
});
[我无法在这里使用
$(document.body).observe()
,但我认为这并不重要。]

我在这里担心的是,应用程序的其他部分可能已经针对该事件注册了功能,我(盲目地)用自己的功能覆盖它们,这将导致问题进一步恶化

Prototype是否会附加自定义函数,即使它们具有相同的名称,还是会覆盖它们?如果它确实覆盖了它们,那么我如何将我的函数附加到已经存在的任何东西上?到底有没有看什么

我会想象这样的事情,但我几乎不知道原型,我的JS这些天都生锈了

var ExistingCustomEvent = $(document.body).Events["ns:customevent"];
$(document).observe("ns:customevent", function(event) {
     ExistingCustomEvent();
    //do custom stuff here
});
我不能添加我的事件处理程序或外接程序代码来调用我自己的函数,我想尝试避免使用第三方库(如果可能的话)


谢谢。

对于其他偶然发现这个问题的人,请参考,根据Pointy的评论,Prototype确实将函数附加到自定义事件中

我通过尝试以下命令验证了这一点,并触发了两个警报

$(document).observe("ns:customevent", function(event) {
     alert("ALERT 1");
});
$(document).observe("ns:customevent", function(event) {
     alert("ALERT 2");
});

很好:)

您几乎肯定不会覆盖其他事件处理程序;您只是在将自己的事件添加到处理程序列表中。@即使有一个事件已经用相同的名称声明了,也有意义吗?@Pointy我想您是对的,我刚刚尝试用相同的名称注册了两个事件,但都被触发了,这既是一个好消息,也是浪费我2个小时的生命:-p如果你想补充这个作为答案,我会标记为是,并补充我自己的回答。谢谢。我所知道的所有“现代”事件处理程序注册系统都不会覆盖旧的处理程序,原因正是您提到的:)只有旧的“onfoo”事件属性有这个问题。