2013-11-25 2 views
0

У меня есть форма/список автозаполнения jquery mobile. Я хочу отобразить введенный текст из поля ввода в качестве первого параметра в списке. Это прекрасно работает, однако этот пользовательский элемент списка не получает стиль, как остальные элементы списка. Это видно только при нажатии одного символа. Когда вводится второй символ, стиль отформатирован так, как он должен быть.Показать введенный текст в списке автозаполнения jquery

Я использую следующий код для регистрации ключей нажаты:

$('#searchdiv').keyup(function() { 
     $('#searchInput a').html($('#searchdiv input').val()); 

     if($('#searchdiv input').val().length == 0) { 
      $('#searchInput').hide(); 
     } 
     else { 
      $('#searchInput').show(); 
     } 
    }); 

Посмотреть полный пример здесь: http://jsfiddle.net/TAU82/

Можно ли обновлять стили при нажатии первого символа?

Спасибо

ответ

2

Чтобы получить JQuery мобильный телефон, чтобы исправить это классы (это добавляет first-child класс литиево элемента, который он думает, что это первый), необходимо вручную вызвать $('#contacts').listview('refresh'); для того, чтобы обновить

Demo


Если он не работает с вашим пользовательским JS, я бы удостоверился, что обновление добавляется после добавления нового узла (<li>) в список. jQuery Mobile Docs в самой нижней части страницы рассказывает о том, как обновление влияет только на новые добавленные узлы из-за эффективности. Также они предлагают не вместо того, чтобы использовать hide() функцию:

Если вы изначально хотите скрыть элемент списка вы можете сделать это, добавив класс ui-screen-hidden к элементу LI. Использование этого класса гарантирует, что угловой стиль будет применен правильно, а также пограничный снимок на последнем видимом элементе.

+0

Спасибо! Он отлично работает – user1698462

+0

Ожидается ли, что когда я переведу вышеуказанный код в свой JS-файл, он не работает? Однако, если я переписал функцию нормальной функции javascript, функция getInput() и называет ее onkeyup = "getInput()", она работает нормально? – user1698462

+0

Трудно сказать, в чем проблема, не глядя на какой-либо код, я отредактировал свой ответ, чтобы попытаться помочь вам в правильном направлении – Ertyguy

Смежные вопросы