我正在使用第三方产品,我正在使用自己的自定义功能扩展用户界面。在其中的一部分,我需要在使用AJAX调用更新UI之后调用事件。幸运的是,应用程序在调用完成后使用Prototype JS库调用自定义事件,如下所示:
$(document.body).fire("ns:customevent");
如果我添加具有相同名称的自定义事件,则按预期工作
$(document).observe("ns:customevent", function(event) {
//do custom stuff here
});
[我无法让$(document.body).observe()
在这里工作,但我认为这不重要。]
我担心的是,应用程序中可能还有其他部分已经注册了针对该事件的功能,并且我(盲目地)用自己的事件覆盖它们,这将导致问题进一步发展。
Prototype是否附加自定义函数,即使它们具有相同的名称,或者它实际上是否覆盖它们?如果它覆盖了它们,那么如何将我的函数附加到已经存在的任何东西?无论如何看是什么
我会想象这样的事情,但我很难知道Protoype和我的JS现在非常生疏。
var ExistingCustomEvent = $(document.body).Events["ns:customevent"];
$(document).observe("ns:customevent", function(event) {
ExistingCustomEvent();
//do custom stuff here
});
我无法添加我的事件处理程序或添加代码来调用我自己的函数,我想尝试避免使用第三方库(如果可能的话)。
感谢。
答案 0 :(得分:1)
作为其他任何偶然发现此问题的人的FYI,根据Pointy的评论,事实证明Prototype确实将函数附加到自定义事件。
我通过尝试以下方式验证了这一点,并且两个警报都被触发了。
$(document).observe("ns:customevent", function(event) {
alert("ALERT 1");
});
$(document).observe("ns:customevent", function(event) {
alert("ALERT 2");
});
很棒:)