2011-02-15 19 views
37

Estoy intentando escribir un complemento que extenderá una función existente en jQuery, p. Ej.Ampliación de una función jQuery existente

(function($) 
{ 
    $.fn.css = function() 
    { 
     // stuff I will be extending 
     // that doesn't affect/change 
     // the way .css() works 
    }; 
})(jQuery); 

hay sólo unos pocos bits que necesito para extender la función de .css(). Fíjate en preguntar, estaba pensando en clases de PHP ya que puedes className extend existingClass, así que estoy preguntando si es posible extender las funciones de jQuery.

+2

¿qué vas a agregar? –

Respuesta

73

Claro ... Sólo tiene que guardar una referencia a la función existente, y lo llaman:

(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); 
+13

Buena respuesta, pero debes ** devolver ** el método aplicado para que la cadena jQuerys se mantenga activa. – jAndy

+1

@jAndy: excelente punto, gracias! –

0

Peter Errikson escribir código muy usfull en extending jQuery with two new events, onShow and onHide con código de ejemplo jsFiddle ...

sugiero leer ese artículo ... se ve muy bien :)

+2

debe tomar la parte interesante del artículo y ponerlo en la respuesta, las respuestas de enlace único generalmente no son bien aceptadas por SO –

+0

pero responde esa pregunta !! ¿Debería escribir ese código otra vez? –

+1

es mejor incluir las partes esenciales de la respuesta aquí (incluso con copiar el código nuevamente) y proporcionar el enlace para referencia. Las respuestas solo de enlace pueden dejar de ser válidas si la página vinculada cambia –

Cuestiones relacionadas