¿Cómo usar $ (esto) dentro de una 'función secundaria' en jQuery?

Esta llamada de función

$('#mydiv').paintRed();

pinta el fondo del elemento DOM con id midiv rojo, si estás usando este código:

$.fn.paintRed = function() {
    $(this).css("background-color", "red");
}

Bueno esta bien. Pero ahora quiero 'agrupar' mis propias funciones. Ahora quiero que el programador use esta llamada de función para lograr lo mismo que arriba:

$('#mydiv').subsub.paintRed();

¿Cómo lo logro?

(O bien, si la solicitud anterior no es posible, ¿hay alguna otra manera?)

preguntado el 22 de mayo de 12 a las 14:05

No es posible. this se referiría a $('#mydiv').subsub (a menos que lo vincule a otro valor, pero eso significa crear una nueva función para cada selección). Así es como funciona JavaScript. -

2 Respuestas

    $.fn.subsub= function() {
       var that = this;
        return {
            "paintRed" : function(){
                $(that).css("background-color", "red");
            },
            "yourOwnFunction1" : function(){
                 //code here
             },
            "yourOwnFunction2" : function(){
                 //code here
             }
        };
    }
    $("#mydiv").subsub().paintRed();
//  $("#mydiv").subsub().yourOwnFunction1();

Devuelve un objeto que tiene paintRed como su propiedad. Al utilizar este método, todas sus funciones se pueden "agrupar" en el subsub función.

Violín

contestado el 23 de mayo de 12 a las 09:05

Puedes extender funciones usando jquery

$.fn.someFunctionName = function(){
// do something
}

Asegúrate de leer DEMO aquí

contestado el 22 de mayo de 12 a las 15:05

Eso es lo que mencioné en mi pregunta. - Emperador MC

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.