Я сделал то же самое с методом jQuery $ .ajax. Я создал новый метод верхнего уровня для объекта jQuery:
$.extend({ myAjax: function(options) {
// code I want to run before the jQuery AJAX,
// I can access and alter the options passed in
var jqXHR = $.ajax(myAjax);
// code I want to run after the jQuery AJAX
// I can also run jQuery deferred code, e.g: jqXHR.done(function() { something });
});
Затем вы можете позвонить по этому номеру:
var options = {
url: "http://example.com",
type: "GET",
dataType: "JSONP"
}
$.myAjax(options);
Где я обернул свою дополнительную функциональность вокруг функции jQuery AJAX. Это позволило мне выбирать между использованием расширенной функции или переходом к базовой функции jQuery. Это также обеспечивает совместимость с плагинами, существующим кодом и т. Д.