Javascript 如何在.change()上调用函数?

Javascript 如何在.change()上调用函数?,javascript,jquery,Javascript,Jquery,摘要:我想在复选框的状态更改时调用外部函数 以下代码包括调用更改的功能工作(代码可在注释部分获得) HTML 与预期一样,在选中或取消选中复选框时会发出一个警报 我现在想: 这不再有效(状态更改时无警报)。为什么会这样?您只需要函数定义,不需要执行它: $("#cb").change(alertme); 您只想将函数名传递给更改事件,而不是实际调用函数并传递返回值。改用这个: $("#cb").change(alertme); 不执行该函数,只将其作为回调传递: $("#cb").chan

摘要:我想在复选框的状态更改时调用外部函数

以下代码包括调用更改的功能工作(代码可在注释部分获得)

HTML

与预期一样,在选中或取消选中复选框时会发出一个
警报


我现在想:


这不再有效(状态更改时无警报)。为什么会这样?

您只需要函数定义,不需要执行它:

$("#cb").change(alertme);

您只想将函数名传递给更改事件,而不是实际调用函数并传递返回值。改用这个:

$("#cb").change(alertme);

不执行该函数,只将其作为回调传递:

$("#cb").change(alertme);

function alertme () {
        if ($("#cb").prop('checked'))
        {
            alert('checked');
        } else {
            alert('unchecked')
        }
    }

alertme
而不是
alertme()
答案很清楚,谢谢。反对票,嗯……你有两种方式:第一:
$(“#cb”).change(alertme)秒:
$(“#cb”).change(函数(){alertme();})我更喜欢第二个版本,您需要传递函数的引用,因为您可以看到或复制函数
$("#cb").change(alertme);
$("#cb").change(alertme);
$("#cb").change(alertme);

function alertme () {
        if ($("#cb").prop('checked'))
        {
            alert('checked');
        } else {
            alert('unchecked')
        }
    }