我有以下代码。绑定到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");
}
}
我做错了什么吗?我宁愿不使用匿名函数......但也许这就是事情的运作方式?
答案 0 :(得分:4)
此代码:
.click( SetCheckBox1State(this.checked) );
将.click()
函数指定为此函数的输出:SetCheckBox1State(this.checked)
。
您必须摆脱参数(使其成为内部参数)并传递函数名称:
.click( SetCheckBox1State );