是否有可能绑定到Click事件而不使用匿名函数——我只想调用命名函数

Is it possible to bind to the Click event and not use an anonymous function -- I just want to call a named function

本文关键字:函数 调用 只想 绑定 有可能 Click 事件 是否      更新时间:2023-09-26

我有以下代码。绑定到click事件的第一次尝试没有成功。第二种方法可以。第一个显示了Page_Load期间的警告"CheckBox1"。第二个显示了在适当的时间——点击期间的警告"CheckBox4"。

$(document).ready(function () {
    $(document.getElementById(checkBox1ID)).click( SetCheckBox1State(this.checked) );
    $(document.getElementById(checkBox4ID)).click(function () { SetCheckBox4State(this.checked) });
});
    function SetCheckBox1State(checked) {
    alert("CheckBox2");
    var radNumericTextBox1 = $find(radNumericTextBox1ID);
    var wrapperElement = $get(radNumericTextBox1._wrapperElementID);
    var label = $(wrapperElemenet.getElementsByTagName("label")[0]);
    if (checked) {
        radNumericTextBox1.enable();
        label.addClass("LabelEnabled");
        label.removeClass("LabelDisabled");
    }
    else {
        radNumericTextBox1.disable();
        label.addClass("LabelDisabled");
        label.removeClass("LabelEnabled");
    }
}
function SetCheckBox4State(checked) {
    alert("CheckBox4");
    var radNumericTextBox2 = $find(radNumericTextBox2ID);
    var wrapperElement = $get(radNumericTextBox2._wrapperElementID);
    var label = $(wrapperElemenet.getElementsByTagName("label")[0]);
    if (checked) {
        radNumericTextBox2.enable();
        label.addClass("LabelEnabled");
        label.removeClass("LabelDisabled");
    }
    else {
        radNumericTextBox2.disable();
        label.addClass("LabelDisabled");
        label.removeClass("LabelEnabled");
    }
}

我做了什么不合适的事吗?我宁愿不使用匿名函数…但也许事情就是这样?

代码:

 .click( SetCheckBox1State(this.checked) );

指定.click()函数为该函数的输出: SetCheckBox1State(this.checked) .

你必须去掉参数(使其成为内部参数),只传递函数名:

.click( SetCheckBox1State );