所以我在AJAX调用之后追加以下内容,这个AJAX调用可能会发生几次,返回几个数据项。我正在尝试使用Tinysort [http://plugins.jquery.com/project/TinySort]每次对列表进行排序,因此添加的新项目可以很好地集成并按字母顺序排序。
遗憾的是,它似乎没有起作用。有任何想法吗?我的意思是,数据本身被正确附加,但遗憾的是没有进行排序。
var artists = [];
$.each(data.artists, function(k, v) {
artists.push('<section id="artist:' + v.name + '" class="artist"><div class="span-9"><img alt="' + v.name + '" width="34" height="34" class="photo" src="' + v.photo + '" /><strong>' + v.name + '</strong><br/><span>' + v.events + ' upcoming gig');
if (v.events != 1) {
artists.push('s');
}
artists.push('</span></div><div class="span-2 align-right last">Last</div><div class="clear"></div></section>');
});
$('div.artists p').remove();
$('div.artists div.next').remove();
$('div.artists').append(artists.join('')).append('<div class="next"><a href="#">Next</a></div>');
$('div.artists section').tsort('section[id]', {orderby: 'id'});
谢谢!
答案 0 :(得分:1)
我建议在服务器端对数据进行排序。不确定您的数据源是什么,但在大多数情况下,将排序逻辑移动到服务器应该更容易。
在Javascript中进行排序时,如果您的数据包含非ascii字符(某些浏览器可以对这些数据进行排序,而某些浏览器可以对其进行排序),则可能会在不同的浏览器中遇到问这会导致浏览器之间出现不同的行为,这是我想不到的。