并感谢您的关注。
目前我正在实现这个例子中的代码。在我的 aspx 文件中,我定义了 Label1 和 Textbox1。在我的 aspx.cs 文件中,我将 Label1.Text 属性设置为 Page_Load 方法中的随机字符串。
在我包含的 .js 文件中,我有:
var Label1, TextBox1;
Sys.Application.add_init(AppInit);
function AppInit(sender) {
Label1 = $get('Label1');
TextBox1 = $get('TextBox1');
$addHandler(Label1, "click", Label1_Click);
$addHandler(TextBox1, "blur", TextBox1_Blur);
$addHandler(TextBox1, "keydown", TextBox1_KeyDown);
}
现在,我想添加更多标签(和相应的文本框),但我不希望为每个附加事件定义单独的处理程序的开销,即我想避免这种情况:
$addHandler(Label1, "click", Label1_Click);
$addHandler(TextBox1, "blur", TextBox1_Blur);
$addHandler(TextBox1, "keydown", TextBox1_KeyDown);
$addHandler(Label2, "click", Label2_Click);
$addHandler(TextBox2, "blur", TextBox2_Blur);
$addHandler(TextBox2, "keydown", TextBox2_KeyDown);
...
如何将参数传递给将准确识别发件人的处理程序,并让处理程序使用“this”或其他内容。另外值得注意的是,我希望能够识别标签 (1,2,3...) 的索引,因为我还必须编辑相应的文本框。例如,Label1_Click 的当前实现如下所示:
function Label1_Click() {
TextBox1.value = Label1.innerHTML;
Label1.style.display = 'none';
TextBox1.style.display = '';
TextBox1.focus();
TextBox1.select();
}
谢谢你们。