想知道是否有一种优雅的方法来监听JavaScript和/或jQuery中的函数。
比起监听$('#mything').click(function(){ //blah })
,我更愿意监听某个特定函数何时被触发。我不想编辑这个函数,因为它在一个我不想直接破解的库中。
我确实发现了这个:http://plugins.jquery.com/project/jqConnect连接函数。
但想知道更好的技术
要做到这一点,唯一的方法是重写函数(即,破解库):
(function() {
var oldVersion = someLibrary.someFunction;
someLibrary.someFunction = function() {
// do some stuff
var result = oldVersion.apply(this, arguments);
// do some more stuff
return result;
};
})();
Edit:要在库函数运行后运行代码,只需先调用库函数,并将结果存储在变量中。然后,运行代码,最后返回先前存储的结果。我已经更新了上面的示例,以适应在库函数之前或之后运行代码。