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

时间:2015-12-21 14:38:02

标签: javascript jquery

摘要:我希望在复选框状态更改时调用外部函数。

以下代码包含调用更改的功能正常工作JSFiddle处提供的代码,评论部分)

HTML

<input type="checkbox" id="cb">

JS

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

正如预期的那样,在选中或取消选中复选框时会引发alert

我现在想要move the function part outside the .change() method

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

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

这不再起作用(状态更改没有警报)。为什么会这样?

3 个答案:

答案 0 :(得分:6)

您只需要功能定义,不要执行它:

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

答案 1 :(得分:2)

不要执行该功能,只需将其作为回调传递:

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

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

答案 2 :(得分:1)

您只想将函数名称传递给change事件,而不是实际调用该函数并传递返回值。请改用:

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