5

我有以下内容,我想在页面加载时第一次运行。然后我希望它在用户进行更改时在 keyup 上运行。我想运行的函数非常大(为了在此处发布而删减)所以我不想复制该函数。有没有办法调用函数 onload 然后在 keyup 上重用它?谢谢

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

4 回答 4

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
于 2012-06-01T08:25:24.260 回答
3

试试这个

$(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​​​
于 2012-06-01T08:27:06.430 回答
2

您可以在加载时触发该事件。

$("td, input").keyup(
  function (){
    var col_1revenue = $(".Col1Receipts, .Col1Receipts input").sum(); 
  } 
).keyup();
于 2012-06-01T08:26:28.793 回答
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
于 2012-06-01T08:27:41.677 回答