我有一個重命名某些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