gpt4 book ai didi

javascript - 使用 jQuery 将事件转发到另一个元素

转载 作者:搜寻专家 更新时间:2023-10-31 21:51:58 24 4
gpt4 key购买 nike

我正在用 HTML/JS 制作一个网格控件,我希望它的行为尽可能像 Excel。我已经完成了大部分导航和编辑工作,但有一件事我想不通,我在网上找到的所有内容都不适用于我的情况。

首先我要解释一下我是如何实现它的:我已经使用表格制作了网格并在每个 td 中插入了一个文本框。除非您双击单元格(很像在 Excel 中),否则文本框不会获得焦点。换句话说,单击一个单元格只需将其选中,然后双击即可对其进行编辑。您可以使用箭头键四处导航,这是通过在文档上附加一个按键事件处理程序来完成的。

现在,当一个单元格被选中时,我希望能够通过键入来开始编辑它。为此,我在我的事件处理程序中添加了一些代码来控制导航,检查用户是否正在键入可见字符 (e.charCode != 0) 并将焦点设置在所选单元格的文本框中。除了用户键入的第一个字符未被文本框接收外,这工作正常。显然 .trigger 是可行的方法;这是我到目前为止尝试过的方法

self.editCell.trigger(jQuery.Event('keypress', {which: e.charCode}));

我尝试传递更多参数,如 keyCode、charCode 等,但没有成功。

那么将击键传递给输入控件的最佳方式是什么?

最佳答案

您要更改的唯一行为是您想要使用箭头键在其他单元格之间导航,对吗?

为什么不让 native 代码处理繁重的工作并只检测方向键的使用,而不是将操作列入白名单?

类似于:

function cellKeyDown(e) {
if (e.keyCode > 36 && e.keyCode < 40) {
// select a new cell
}
}

关于javascript - 使用 jQuery 将事件转发到另一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6970125/

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