Элемент не получает фокус

142
02 апреля 2019, 01:20

У меня есть скрипт, который при клике на кнопку добавляет на страницу ul c li. Когда фокус находится на li и пользователь нажимает Enter - я создаю еще 1 li и вставляю после первого. После чего делаю на последнем фокус. Например:

let activeLi;//активная li
let newLi = $('<li></li>');
activeLi.after(newLi);
newLi.focus();

Html имеет такой вид

<div contenteditable="true">
    <ul>
        <li></li>
    </ul>
</div>

Но фокус не ставится на новый элемент, а остается на старом. В чем моя ошибка?

Answer 1

Не забывай про tabindex и всё будет работать:

$("li").focus().parent().keypress(function (e) { 
  if (e.keyCode === 13) { 
    var li = $("<li tabindex=0>") 
    $(e.target).after(li) 
    li.focus() 
  } 
})
ul { counter-reset: i } 
li { counter-increment: i } 
li:after { content: counter(i) }
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
  <li tabindex=0> 
</ul>

READ ALSO
Как правильно сделать Dependency Injection. Теоретический вопрос

Как правильно сделать Dependency Injection. Теоретический вопрос

Изучаю вопрос связанный с IOC (Инверсия управления), как я понял это некий абстрактный паттерн, который говорит,что нужно делать слабое связывание...

165
hmac(вывод ключа) RandomNumberGenerator c#

hmac(вывод ключа) RandomNumberGenerator c#

Вывод ключа неверный, в чем может быть проблема?

231
Взаимодействие WindowsForm C# и DLL написанной на С#

Взаимодействие WindowsForm C# и DLL написанной на С#

Программа на С# загружает динамическую библиотеку написанную на том же С#Соответственно dll выполняет одну только функцию

156
Изменение PolygonCollider2D скриптом

Изменение PolygonCollider2D скриптом

Не могу решить проблемуПри создании игрового объекта из префаба по высчитанным точкам рисуется треугольник (рисуется ровно и правильно)...

192