0
我已经获得了使用jQuery(.ajax)和JSON动态创建的< li>格式的新闻文章列表。当我收到JSON数据时,我构建了列表项并将它们附加到父项< ul>。动态jQuery/JSON菜单在注销之前变为静态
我的问题是,如果用户使用后退按钮,然后重新进入新闻领域,列表获取并再次追加,给我重复的列表项。 jQuery中有没有办法将.ajax请求限制为一个负载?或者我应该将所有新闻< li>添加到会话/本地存储中?
代码:
$('#schoolnews').live("click", function(){
$.mobile.showPageLoadingMsg();
var schoolID = sessionStorage.getItem('schoolID');
var entityType = sessionStorage.getItem('entityType');
$.ajax({
url: 'http://www.sycamoreeducation.com/mobile/JSON/getnewslist.php',
data: {schoolID: 'schoolID', entityType: 'entityType'},
dataType: 'jsonp',
jsonp: 'jsoncallback',
timeout: 5000,
success: function(data){
//alert("Success in retreiving JSON News Data!");
$.mobile.changePage('#news');
$.each(data, function(index, value){
var newslistitems = '<li class="newsitem" data-theme="c"><h3>' +value.Subject+ '</h3><p>Posted on: ' +value.Day+ '</p></li>';
$('ul#newslist').append(newslistitems);
});
$('ul#newslist').listview('refresh');
$.mobile.hidePageLoadingMsg();
},
error: function(){
alert('Error Message');
}
}); //end login ajax call
}); //end school news click listener
还是很当谈到jQuery的,所以如果你能发现我在哪里可以改进的任何区域,请不要犹豫,让我知道一个新手。谢谢!
尝试在数据加载之前在父UL上运行empty()。通过这种方式,无论列表中是否有内容,它都将清除全部内容,然后附加任何数据。值得一试 – chris 2012-03-14 20:22:21
谢谢,@Chris!这就是我现在一直在做的事情(一年多后),它一直像魅力一样工作。 – TheBrockEllis 2013-03-26 13:57:29