Jquery - 页面加载时触发change事件

3

我在一个HTML页面上有选择控件,使用Jquery设置更改事件。

但是该事件在页面加载时触发,当我尝试更改选择控件的值时并没有触发。

有任何想法是为什么吗?

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

12

你的语法是错误的。

通过写change(CalculateHours($(this)),你正在 调用 CalculateHours 函数并将其返回值作为函数传递给jQuery的change方法。只有当你的函数返回另一个函数并且你想将返回的函数添加为事件处理程序时,才会这样写。

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


2
您正在尝试将CalculateHours的结果绑定到更改事件。请改为使用以下方法。
$(function() {
    $('select[id^=Start], select[id^=Finish], select[id^=Lunch]').change(function() { 
        CalculateHours($(this)); 
    });
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接