我试图写一个插件,将扩展一个现有的函数在jQuery,例如。
(function($) { $.fn.css = function() { // stuff I will be extending // that doesn't affect/change // the way .css() works }; })(jQuery);
只有几个位,我需要扩展的.css()函数。记住我的问题,我在考虑PHP类,因为你可以className extends existingClass,所以我问是否可能扩展jQuery函数。
解决方法
当然…只保存对现有函数的引用,并调用它:
(function($) { // maintain a reference to the existing function var oldcss = $.fn.css; // ...before overwriting the jQuery extension point $.fn.css = function() { // original behavior - use function.apply to preserve context var ret = oldcss.apply(this,arguments); // stuff I will be extending // that doesn't affect/change // the way .css() works // preserve return value (probably the jQuery object...) return ret; }; })(jQuery);