J'essaie d'écrire un plugin qui étendra une fonction existante dans jQuery, par exemple.
(function($)
{
$.fn.css = function()
{
// stuff I will be extending
// that doesn't affect/change
// the way .css() works
};
})(jQuery);
Il ne faut que quelques bits pour étendre la fonction .css()
. Rappelez-vous que je posais la question. Je pensais aux classes PHP puisque vous pouvez className extend existingClass
. Je demande donc s'il est possible d'étendre les fonctions jQuery.
Bien sûr ... Sauvegardez simplement une référence à la fonction existante et appelez-la:
(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);
Même façon mais un peu différente de la meilleure réponse de cette question:
// Maintain a reference to the existing function
const oldShow = jQuery.fn.show
jQuery.fn.show = function() {
// Original behavior - use function.apply to preserve context
const ret = oldShow.apply(this, arguments)
// Your source code
this.removeClass('hidden')
return ret
}