我有自己的对象,带有onShow()函数,当显示对象时,该函数被(我)调用。我可以通过分配来覆盖此功能

o.onShow = function() { // something };

但是它将删除该函数的先前版本。因此,如果我希望保留现有的处理程序,则应将其缓存并调用新的处理程序:
o.oldOnShow = o.onShow;
o.onShow = function() { this.oldOnShow(); // something };

但是这样,我只能缓存一个先前的处理程序。如果有很多呢?

是否有方便的方法来完成此任务?这个任务在文献中是如何命名的? jQuery中是否有针对此的方法?

最佳答案

如果需要触发自定义事件(如您所定义),则应调用.trigger()方法(只要您认为应该触发该事件):

$(o).trigger('my-awesome-event');

然后,您可以使用.bind()或(如果您使用的是jQuery 1.7+).on()来定义一个或多个侦听器:
$(o).on('my-awesome-event', function(event){ ... });

09-27 21:39