我有自己的对象,带有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){ ... });