摘要:我希望在复选框状态更改时调用外部函数。
以下代码包含调用更改的功能正常工作(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')
}
}
这不再起作用(状态更改没有警报)。为什么会这样?
答案 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);