gpt4 book ai didi

javascript - 如何将参数添加到 javascript 中的事件处理程序?

转载 作者:行者123 更新时间:2023-11-30 06:48:32 25 4
gpt4 key购买 nike

感谢您的关注。

目前我正在执行来自 this 的代码例子。在我的 aspx 文件中,我定义了 Label1 和 Textbox1。在我的 aspx.cs 文件中,我在 Page_Load 方法中将 Label1.Text 属性设置为随机字符串。

在我包含的 .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();
}

谢谢你们。

最佳答案

嗯,$addHandlers 可以帮助加快添加处理程序的过程……此外,在 JS 中,您可以通过执行以下操作将杂项数据附加到对象: Label1["somenewproperty"] = value;因此您可以附加某些属性并 checkin 事件处理程序...虽然确实会占用资源,但请注意您执行此操作的量...

在某种程度上,JS应该如何知道你要监听的对象以及对象的顺序,以减少代码量?也许存储文本框和标签数组,并通过索引引用这些对象,但在某种程度上,您无法摆脱某些管道代码。

HTH.

关于javascript - 如何将参数添加到 javascript 中的事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3559196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com