2010-02-05 49 views
3

我在HTML页面上选择了控件,并使用jquery设置 设置了更改事件。Jquery - 页面加载时发生更改事件

但事件在页面加载时触发,并且在 时未触发我尝试更改选择控件中的值。

任何想法为什么?

$(function() { 
    $('select[id^=Start], select[id^=Finish], select[id^=Lunch]').change(CalculateHours($(this))); 
}); 

回答

10

您的语法错误。

通过写change(CalculateHours($(this)),你是调用CalculateHours功能和它的返回值传递给jQuery的change方法,如果它是一个功能。如果你的函数返回了另一个函数,并且你想把返回的函数作为事件处理函数添加,你只会写这个。

你需要写.change(function() { CalculateHours($(this)); })

1

您正在试图CalculateHours到里边反改变事件的结果绑定。试试这个。

$(function() { 
    $('select[id^=Start], select[id^=Finish], select[id^=Lunch]').change(function() { 
     CalculateHours($(this)); 
    }); 
});