清除Ajax结果

时间:2012-03-14 00:07:25

标签: jquery ajax listview

我在使用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'); 
    }

由于

1 个答案:

答案 0 :(得分:1)

确保正在重置imageTile。我假设它是一个全局变量,如果是这样,你只是追加它。

更改为:

success: function (data, status) {
    imageTite = "";
    $.each(data, populateImageGrid);
},

应该这样做。或者,更好的是,如果没有理由将其作为全局变量,则将其设为局部变量:

var imageTile = "<li><a href='" + photoSource + "'><img src='" + thumbSource + "' alt='" + title + "' /></a></li>";