这适用于使用1.0.1版的jQuery Mobile应用程序.
我正在尝试从我的getmovies.php文件中获取数据,该文件输出JSON,用于jQuery函数,该函数将数据附加到HTML页面上的无序列表中.
我的HTML页面显示正确,但getMoviesList()函数不附加任何列表项,因此内容区域留空.
我的猜测是我的$.each()函数有问题.我对PHP更熟悉,但试图更熟悉jQuery和JSON,以便在jQuery Mobile应用程序中移动数据.
getmovies.php输出JSON如下:
{"items":[
{"movieID":"65086","title":"The Woman in Black","poster":"\/kArMj2qsOnpxBCpSa3RQ0XemUiX.jpg"},
{"movieID":"76726","title":"Chronicle","poster":"\/853mMoSc5d6CH8uAV9Yq0iHfjor.jpg"}
]}
我的Javascript如下:
var serviceURL = "http://mydomain.com/app3/services/";
var movies;
$('#moviesPage').bind('pageinit', function(event) {
getMoviesList();
});
function getMoviesList() {
$.getJSON(serviceURL + 'getmovies.php', function(data) {
$('#moviesList li').remove();
movies = data.items;
$.each(movies, function(index, movie) {
$('#moviesList').append('<li><a href="movie-details.html?movieID=' + movie.movieID + '">' +
'<img src="posters/' + movie.poster + '"/>' +
'<h4>' + movie.title + '</h4>' +
'<p>Other details...</p>' +
'</a></li>');
});
$('#movieList').listview('refresh');
});
}
我的HTML看起来像这样:
<div id="moviesPage" data-role="page">
<div data-role="content">
<ul id="moviesList" data-role="listview" data-filter="true"></ul>
</div><!-- /content -->
</div><!-- /page -->
我正在尝试修改以下示例应用程序以满足我的需求:http://coenraets.org/blog/2011/10/sample-application-with-jquery-mobile-and-phonegap/.
谢谢你尽你所能的帮助.
最佳答案 验证您的JSON输出是否有效:在此处验证
jsonlint.com
将绑定事件更改为此并查看它是否正常工作.
$('#moviesPage').bind('pageinit', function(event) {
getMoviesList();
});
对此
$('#moviesPage').live('pageshow', function(event) { //or 'pagecreate'
getMoviesList();
});
正如我所看到的,JS代码的其余部分都可以!
试试这个,看看它是否有效.据我所知,它应该!这是我在我的移动应用程序上使用的方法并且运行良好.