JQuery mobile error "не может вызывать методы в представлении списка до инициализации"
Я динамически заполняю <ul data-role="listview">
, а затем вызываю location.href="#Results"
, где находится список, и, наконец, listview('refresh')
.
Все, что сделано в обратном вызове успеха запроса Ajax с той же страницы. Он работает более или менее, но я получаю следующую ошибку:
Uncaught cannot call methods on listview prior to initialization; attempted to call method 'refresh'
Я думаю, что jQuery mobile еще не создал список. Что я могу сделать?
Ответы
Ответ 1
http://jquerymobile.com/demos/1.1.0/docs/api/events.html
Вы должны подключиться к событию pageinit. Вы не можете вызывать какие-либо методы JQM до этого.
то есть:.
$('#Results').bind('pageinit', function() {
$('#myListview').listview('refresh');
});
Ответ 2
Просто вызовите метод listview без каких-либо параметров:
$('#myListview').listview().listview('refresh');
Решение взято из http://www.gajotres.net/uncaught-error-cannot-call-methods-on-prior-to-initialization-attempted-to-call-method-refresh/
Ответ 3
вы должны проверить, если он уже инициализирован или нет, обновите список, если он инициализирован, иначе создайте триггер следующим образом:
if ( $('#myListview').hasClass('ui-listview')) {
$('#myListview').listview('refresh');
}
else {
$('#myListview').trigger('create');
}
Ответ 4
У меня была такая же ошибка. Я решил это, добавив в мой запрос ": visible", поэтому он будет запускаться только в том случае, если список виден.
Итак, ваш код будет выглядеть примерно так:
$('#myListview:visible').listview('refresh');
Работал отлично для меня!
Ответ 5
используйте $.mobile.changePage("#Results");
вместо location.href
на самом деле location.href
перезагрузите страницу, чтобы список выглядел разрушенным
И затем listview.refresh
Ответ 6
просто добавьте listview.refresh, отлично подходит для меня, и я использую ajax для загрузки содержимого в div тоже.
document.getElementById("myListview").innerHTML = xmlhttp.responseText;
//works fine on my work
$('#myListview').listview('refresh');
здесь, если мой пост.
jquery mobile ajax загружает содержимое в элемент div, потеряет его стиль css
Я провожу почти 3 часа, чтобы решить свой пост probem.finaly найти ответ здесь.