我正在使用jQuery Mobile和AJAX构建一个webapp,以便在PHP的帮助下从服务器中提取SQL。
回调很好,因为它显示了我想要的正确值。问题是每次访问页面时,相同的数据都会附加到列表中,从而产生重复数据。
这是ajax查询:
function getNews() {
$.ajax({
url: 'http:mylivesite/news_ajax.php?',
dataType: 'jsonp',
jsonp: 'jsoncallback',
timeout: 5000,
success: function(data, status) {
$.each(data, function(i, item){
var newNews = '<li>'+
'<p>'+item.title+'</p>'+
'<p>'+item.content+'</p>'+
'</li>';
$('#currentNews').append(newNews);
});
},
error: function() {
output.text('There was an error loading the data.');
}
});
}
我添加了cache: false
,但结果相同。我错过了什么?
答案 0 :(得分:2)
嗯,这就是你 append 时发生的事情。东西得到 appended 。
首先是Empty目标元素,如果这是您需要的语义:
success: function(data, status) {
$('#currentNews').empty(); // <-----------------
$.each(data, function(i, item) {
var newNews = '<li>'+
'<p>'+item.title+'</p>'+
'<p>'+item.content+'</p>'+
'</li>';
$('#currentNews').append(newNews);
});
}
答案 1 :(得分:2)
在发出请求之前使用$('#currentNews').empty();
。
答案 2 :(得分:2)
需要研究的两个方面。
$('#currentNews').empty()
清除成功回拨中的当前新闻。