【发布时间】:2013-05-13 21:30:25
【问题描述】:
我有一个重命名某些 div 的功能。我试图让它工作的方式是这样的:
- 用户右键点击div
- 用户点击上下文菜单上的“重命名”
- Div 获取输入元素并自动聚焦
- 按回车键或点击屏幕后输入被提交
我已完成大部分步骤,但单击“重命名”后输入元素没有被聚焦。代码如下:
function Rename( ){
ClickedFile.innerHTML = "<input class='Rename' type='text' value='" + ClickedFile.innerHTML + "'>";
ClickedFile.childNodes[0].focus();
}
ClickedFile 是被右键单击的节点。更改 innerHTML 工作正常,但 .focus() 没有,我不知道为什么。我在控制台上也没有收到任何错误。
我也尝试过使用:
ClickedFile.childNodes[0].select();
ClickedFile.childNodes[1].focus();
ClickedFile.focus();
他们都没有工作。
编辑:
我知道使用 JQuery 可能会有所帮助,但我更想知道为什么这不起作用。
我解决了这个问题。它与事件处理程序有关。我的答案贴在下面。
【问题讨论】:
-
@tadman jQuery??这到底是为了什么?这就像说 为什么你不首先使用 CodeIgniter。很难出错。
-
你所拥有的似乎对我很有效here。
-
我没有使用它,以便更好地了解纯 JavaScript。我真的不想在这里争论我是否应该使用 jQuery
-
@tadman 阅读我的最后评论
-
由于这是一个 JavaScript 问题,因此政策似乎是:Don't answer it telling the asker to use jQuery. 只需使用 JavaScript 回答,除非明确要求使用 jQuery 或其他框架,或将其命名为正在使用。
标签: javascript html