2011-11-01 50 views
12

我有以下幾點:如何命名和調用jQuery函數?

$('#EID').change(function() { 
       $.ajax({ 
        url: "/Administration/stats", 
        data: { DataSource: $('#DataSource').val(), 
          EID: $('#EID').val() 
        }, 
        success: function (data) { 
         $('#TID').html(data); 
        } 
       }); 
      }); 

這工作不錯,但我希望能夠在其他時間調用函數(),而不是僅僅EID變化時。有人可以告訴我如何將函數代碼拉出到一個帶有名稱的單獨塊中,然後調用該函數名稱。

回答

31
function doSomething() { 
    $.ajax(...); 
} 

$('#EID').change(doSomething); 

諾爾,你必須函數名後,因爲要傳遞的功能,而不是它的返回值加()

如果你想一些參數傳遞給函數,你會做這樣的:

function doSomething(someParam) { 
    $.ajax(...); 
} 

$('#EID').change(function() { 
    doSomething(whateverSomeParamShouldBe); 
}); 
+1

非常感謝。這正是我需要的。如果我想傳遞參數$('#EID')。val()那麼我將如何聲明參數然後在函數內部使用它? –

+0

@Samantha:通常最好的做法是包含一個包含所有東西的函數(稱爲「範圍函數」),因爲否則您會創建全局符號,並且Web瀏覽器中的全局空間已經足夠擁擠。兩個例子:http://pastie.org/2792207 –

+0

@Samantha:*「如果我想傳遞參數$('#EID')。val()那麼我將如何聲明該參數,然後在內部使用它函數?「* ThiefMaster在他的答案的後半部分中展示的方式,例如:http://pastie.org/2792210 –