我有一个重命名某些div的函数。我试图得到它的工作方式是这样的:.focus()不关注新元素
- 用鼠标右击格
- 用户单击“重命名”上下文菜单上
- 事业部得到一个input元素,并自动聚焦
- 按输入或点击屏幕后输入提交
我有大部分的步骤完成,但输入元素没有被点击后,我点击'重命名'。下面的代码:
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。它很难得到错误。* – 2013-05-13 21:36:36
你似乎对我很好[这里](http://jsbin.com/epeyoy/1/)。 – 2013-05-13 21:41:00
我没有使用它,以便更好地理解纯JavaScript。我真的不想在这里辩论是否我应该使用jQuery – tay10r 2013-05-13 21:41:00