2011-01-10 105 views
0

我是jQuery的新手,並且很難獲取.change事件來調用命名函數。當我使用匿名函數時,它工作正常。簡單的jQuery .change問​​題

這工作得很好:

$(function() { 

    $("select").change(function() { 
     alert("hello"); 
    }); 
}); 

這不起作用(即沒有影響):

$(function() { 
    $("select").change(processSelection()); 
    function processSelection() {alert('Hello!');}; 
}); 

任何幫助非常感謝!

+1

奇怪的是,當我從函數調用刪除括號,它的工作。即我將processSelection()更改爲processSelection – 2011-01-10 05:09:25

回答

7

您正在傳遞函數作爲參數,而不是調用它,所以在processSelection之後不需要()。所以,你應該做的

$("select").change(processSelection); 

,而不是

$("select").change(processSelection()); 
+0

您應該解釋它們之間的區別,以防萬一對每個人都不明顯。 – jmort253 2011-01-10 05:07:48