2012-06-01 10 views
5

Ich habe folgendes, das ich möchte zum ersten Mal beim Laden der Seite ausgeführt werden. Dann möchte ich, dass es auf Tastendruck läuft, wenn der Benutzer Änderungen vornimmt. Die Funktion, die ich ausführen möchte, ist sehr groß (für den Post hier nicht dargestellt), also möchte ich die Funktion nicht duplizieren. Gibt es eine Möglichkeit, die Funktion onload aufzurufen und sie dann erneut zu verwenden? DankejQuery run Funktion onload und Taste

$(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

vergessen Sie nicht, um sie zu markieren als angenommen, wenn Sie die Info bekommen Sie wollen .. –

Antwort

1

Versuchen Sie, diese

$(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

Danke funktioniert super. – Bocker

5

Eine einfache Möglichkeit, um eine Funktion zu erstellen und es dann rufen von beiden:

keyupfunction() ist das erste Mal, das Laden der Seite abgeschlossen ist, und wenn die keyup Ereignis wird ausgelöst, genannt ..., das ist der ganze Zweck der Verwendung einer Funktion in einer Programmiersprache.

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

gemeinsame Funktion

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

Sie könnten das Ereignis einmal auf Last auslösen.

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

Wenn Sie eine Funktion an mehreren Stellen verwenden wollen, es nicht anonym machen. Anonyme Funktionen sind mühsam wiederzuverwenden (Sie können sie in bestimmten Fällen immer noch über callee (veraltet) usw. wiederverwenden).

Benennen Sie die Funktion stattdessen. Halten Sie es in dem Rahmen ready sauber zu sein:

$(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

Hallo, ich weiß nicht warum, aber das hat nicht funktioniert – Bocker