изменение на

#listview #refresh #jquery-mobile

#просмотр списка #обновить #jquery-мобильный

Вопрос:

У меня есть список, который я отображаю только со значками и заголовком — без форматирования JQM. Если ширина экрана меньше 320 пикселей, я хочу преобразовать список в JQM <ul data-role="listview"> список.

Я могу добавить атрибут с помощью Jquery, но когда я вызываю $(‘.menuList’).listview(‘обновить’); Я получаю следующую ошибку:

не удается вызвать методы в listview до инициализации; предпринята попытка вызвать метод ‘refresh’

Есть какие-либо подсказки относительно того, что я делаю неправильно?

Спасибо!

Часто

HTML:

 <ul class="menuList">
    <li>
        <div>
            <a href="l" data-transition="slide" rel="external" class="iconViewport icon">
                <span class="menuTitle">GoHere</span>
                <span class="pusher">111</span>
            </a>
        </div>
    </li>
</ul>
  

Jquery

 function enhanceMobile ()
{
    $('.menuList').attr('data-role', 'listview');
    $('.menuList').listview('refresh');
}
  

Ответ №1:

Вы не можете вызвать .listview('refresh'); элемент, который еще не является listview.

Если вы только что добавили data-role , вам нужно вызвать .listview(); который вызывает конструктор виджета (в то время как .listview('refresh'); вызывает метод обновления виджета)

[Я уже отправил вам это по электронной почте, но оно должно быть здесь 🙂 ]