我在使用Web服务调用时遇到问题。
我的成功通话会向UL添加一个LI标签列表,目标是在进行另一次通话之前清除这些结果。现在,如果您单击呼叫按钮,新结果将添加到列表中。
我用.listview('refresh')读到了;应该这样做,但它不适合我。
有关正在发生的事情的任何想法?
HTML
<div data-role="content" id="">
<ul data-role="listview" id="Gallery" class="gallery">
</ul>
</div>
JS
getAlbumImages = function (album) {
$.ajax({
url: wcfServiceUrl + "GetMediaSource?AlbumId=" + album,
data: '{}',
type: 'GET',
contentType: "application/x-www-form-urlencoded",
async: true,
//crossBrowser: true,
dataType: 'jsonp',
//jsonpCallback: 'MediaSource',
timeout: 5000,
success: function (data, status) {
$.each(data, populateImageGrid);
},
complete: function () {
$("ul#Gallery").listview("refresh");
},
error: function () {
alert('There was an error loading the data.');
}
});
}
function populateImageGrid() {
var photoSource, thumbSource, title, description;
photoSource = this.ImageSource;
thumbSource = this.ThumbSource;
title = this.Title;
description = this.Description;
imageTile += "<li><a href='" + photoSource + "'><img src='" + thumbSource + "' alt='" + title + "' /></a></li>";
console.log(imageTile);
$("ul#Gallery").html(imageTile);
//$("ul#Gallery").listview();
// $("ul#Gallery").listview('refresh');
}
由于
答案 0 :(得分:1)
确保正在重置imageTile
。我假设它是一个全局变量,如果是这样,你只是追加它。
更改为:
success: function (data, status) {
imageTite = "";
$.each(data, populateImageGrid);
},
应该这样做。或者,更好的是,如果没有理由将其作为全局变量,则将其设为局部变量:
var imageTile = "<li><a href='" + photoSource + "'><img src='" + thumbSource + "' alt='" + title + "' /></a></li>";