如何在jQuery或纯JavaScript中添加额外的事件处理程序?

Dim*_*ims 2 javascript jquery function extending

我有自己的onShow()函数对象,在显示对象时调用(由我).我可以通过赋值覆盖此函数

o.onShow = function() { // something };
Run Code Online (Sandbox Code Playgroud)

但它删除了以前版本的函数.所以,如果我希望保留现有的处理程序,我应该缓存它并调用新的处理程序:

o.oldOnShow = o.onShow;
o.onShow = function() { this.oldOnShow(); // something };
Run Code Online (Sandbox Code Playgroud)

但是这样我只能缓存一个先前的处理程序.怎么会有很多呢?

有没有方便的方法来完成这项任务?如何在文献中命名这项任务?在jQuery中有这样的方法吗?

Poi*_*nty 5

在jQuery中,您可以添加任意数量的处理程序:

$(o).on('show', function() { ... });
Run Code Online (Sandbox Code Playgroud)

后续调用不会删除以前绑定的处理程序.