Не срабатывает метод focus в js (*)

Рейтинг: 1Ответов: 0Опубликовано: 17.10.2014

Не работает метод .focus() у элемента Input.(id="renameaction").

Вызывается в момент нажатия на кнопку (div id="win_rename").

Этот элемент (id="renameaction") исчезает и появляется с помощью display:none/display:block.

После того как появляется (идет обращение к renameshow) он должен появляться и пользовательский ввод должен быть сфокусирован на этом элементе.

browser chrome, os win 7.

Срабатывает только в первый раз - при запуске, предполагаю, из-за наличия атрибута autofocus, если элемент скрыть и снова показать, то фокусировки на него не будет.

Как решить и что неправильно работает?

<div id="win_rename" value=''>Переименовать</div>
...
<input type='text'  autofocus style='display:none;border #000 solid 1px;' id="renameaction" value="null" >
...

  function renameshow(){
    disableactions();
    var rel = document.getElementById("renameaction");
    rel.style.zIndex = '5000';
    rel.style.display = 'block';
    rel.style.position = 'absolute';
    var el = document.getElementById("contentelementselected");
    if (!el) var el = document.getElementById("contentfolderselected");
    rel.style.width = parseInt(winquery[0].wincontent.style.width)-44;
    rel.value = el.innerHTML;
    winaction.elementid = el;
    rel.style.height=19;
    el.appendChild(rel);
    rel.focus();
}
function disableactions(){
    var back = document.getElementById("win_back");
    var open = document.getElementById("win_open");
    var openInExplorer = document.getElementById("win_openInExplorer");
    var copy = document.getElementById("win_copy");
    var paste = document.getElementById("win_paste");
    var filedelete = document.getElementById("win_delete");
    var rename = document.getElementById("win_rename");
    back.style.display='block';
    open.style.display='none';
    openInExplorer.style.display='none';
    rename.style.display='none';
    filedelete.style.display='none';
    copy.style.display='none';
    if  (copyobj=='null')
        paste.style.display='none';
    else
        paste.style.display='block';
    var addfav = document.getElementById("win_addfav");
    addfav.style.display='none';
    winaction.addfav.style.display='none';
}

Полный код: https://dl.dropboxusercontent.com/u/44864159/www.rar

Ответы

Ответов пока нет.