Это издевательство над тем, что я делаю:
function loadPage(pn) {
$('#'+pn).live('pagecreate',function(event, ui){
$('#'+pn+'-submit').click( function() {
$.mobile.changePage({
url: 'page.php?parm=value',
type: 'post',
data: $('form#'+pn+'_form')
},'slide',false,false);
loadAjaxPages(pn);
});
});
function loadAjaxPages(page) {
// this returns the page I want, all is working
$.ajax({
url: 'page.php?parm=value',
type: 'POST',
error : function (){ document.title='error'; },
success: function (data) {
$('#display_'+page+'_page').html(data); // removed .page(), causing page to transition, but if I use .page() I can see the desired listview
}
});
}
в возвращаемом вызове ajax, если я добавлю .page () (который работал в прошлом, но у меня он был вне функции страницы, меняя логику того, как я загружаю страницы, чтобы сэкономить на времени загрузки), сделать переход страницы на следующую страницу, но я вижу, что представление списка оформлено так, как я хочу:
$('#display_'+page+'_page').html(data).page();
Удаление .page () исправляет ошибку перехода, но теперь страница не стилизуется. Я пробовал listview('refresh')
и даже listview('refresh',true)
, но не повезло.
Есть какие-нибудь мысли о том, как можно обновить представление списка?
Решение:
$.ajax({
url: 'page.php?parm=value',
type: 'POST',
error : function (){ document.title='error'; },
success: function (data) {
$('#display_'+page+'_page').html(data);
$("div#name ul").listview(); // add div wrapper w/ name attr to use the refresh
}
});