2012-06-01 60 views
5

我有以下內容,我希望在頁面加載時第一次運行。然後,我希望它在用戶進行更改時在鍵盤上運行。我想運行的函數非常大(因爲在這裏發佈而被剝離),所以我不想複製函數。有沒有辦法調用函數onload,然後在keyup上重用它?謝謝jQuery運行函數onload和鍵入

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

不要忘記將其標記爲接受的,如果你得到想要的信息.. –

回答

1

如果你想使用在多個地方的函數試試這個

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

謝謝你的偉大工程。 – Bocker

5

一個簡單的方法是創建一個函數,然後從兩個稱呼它:

keyupfunction()被稱爲第一次頁面加載完成,當keyup事件被炒魷魚...這是在編程語言中使用函數的全部目的。

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

共同作用

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

你可以在負載一旦觸發事件。

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

,不讓它匿名的。匿名函數是一種重複使用的痛苦(你仍然可以在某些情況下通過callee(不建議使用)等等來重用它們)

改爲命名函數。保持它的ready範圍內是乾淨的:

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

嗨,不知道爲什麼,但這沒有奏效 – Bocker