Я использую Twitter Typeahead для автозаполнения ввода текста.
Когда я создаю ввод динамически, .typeahead()
не отображает пользовательский интерфейс подсказки, если только он не вызывается после присоединения элемента управления вводом к DOM.
Это работает:
var input1 = $('<input type="text" />');
$("#dynamic-container1").append(input1); /* (A) */
input1.typeahead(null, make_dataset()); /* (B) */
input1.focus();
Это не:
var input2 = $('<input type="text" />');
input2.typeahead(null, make_dataset()); /* (B) */
$("#dynamic-container2").append(input2); /* (A) */
input2.focus();
(Обратите внимание на порядок строк, отмеченных (A)
и (B)
.)
Почему это происходит? Есть ли правильный способ инициализировать Typeahead до того, как его ввод будет добавлен в DOM?
Вот скрипт: http://jsfiddle.net/joz0fn3m/