2012-06-01 11 views
5

Tengo lo siguiente, que me gustaría ejecutar por primera vez cuando se carga la página. Entonces me gustaría que se ejecute en la función de teclado a medida que el usuario realiza cambios. La función que me gustaría ejecutar es muy grande (desglosada para publicarla aquí) por lo que no quiero duplicar la función. ¿Hay alguna manera de invocar la función onload y luego reutilizarla en keyup? GraciasjQuery run function onload y key up

$(document).ready(function() { 
    // this calculates the sum for some text nodes 
    $("td, input").keyup(
     function(){ 
      var col_1revenue = $(".Col1Receipts, .Col1Receipts input").sum(); 
     } // function 
    ); // keyup 
    }); // document ready 
+0

No se olvide de marcarlo como aceptado si recibiera la información que desee .. –

Respuesta

1

probar este

$(document).ready(function() { 
    XX(); 
    // this calculates the sum for some text nodes 
    $("td, input").keyup(XX); // keyup 


    function XX() { 
     var col_1revenue = $(".Col1Receipts, .Col1Receiptsinput").sum(); 
    } // function  
}); // document ready​​​ 
+0

Gracias funciona muy bien. – Bocker

5

Una forma fácil es crear una función y luego llamarlo desde ambos:

keyupfunction() se llama la primera vez que la carga de la página completa y cuando el evento keyup es despedido ... que es todo el propósito de usar una función en un lenguaje de programación.

$(document).ready(function() { 
     keyupfunction(); //first call 
     // this calculates the sum for some text nodes 
     $("td, input").keyup(keyupfunction); // keyup 
     }); // document ready 

función común

function keyupfunction(){ 
       var col_1revenue = $(".Col1Receipts, .Col1Receipts input").sum(); 
} // function 
2

Se podría desencadenar el evento una vez en la carga.

$("td, input").keyup(
    function(){ 
    var col_1revenue = $(".Col1Receipts, .Col1Receipts input").sum(); 
    } 
).keyup(); 
0

Si desea utilizar una función en varios lugares, no lo convierten en el anonimato. Las funciones anónimas son difíciles de reutilizar (aún puede reutilizarlas en ciertos casos a través de callee (obsoleto), etc.)

Nombre la función, en su lugar. Mantenerlo dentro del ámbito de ready estar limpio:

$(document).ready(function() { 
    // this calculates the sum for some text nodes 
    function myfunc(){ 
      var col_1revenue = $(".Col1Receipts, .Col1Receipts input").sum(); 
      //etc 
      //etc 
     } // function 
    $("td, input").keyup(myfunc); // keyup 
    myfunc()//call function; 
    }); // document ready 
+0

Hola, no sé por qué pero esto no funcionó – Bocker

Cuestiones relacionadas