JQuery autodividersSelector没有正确分组帖子

时间:2013-11-06 09:04:09

标签: javascript jquery ajax jquery-mobile

首先,我要感谢您抽出宝贵时间来研究这个问题。非常感谢。

请求: 我最初的意图是按照一周的时间对所有帖子进行分组,即第45周的所有帖子使用分隔符组合在一起,但我已经改变了想法,因此我可以轻松编写代码。我现在希望它按照帖子的日期分组。

到目前为止的努力: 我遇到了autodividersSelector函数并尝试实现它。它似乎工作但结果不正确。输出在一个日期内仅在一个分隔符中对所有帖子进行分组,而不是按发布日期分割分隔符。见下图:

enter image description here 请查看下面的代码,并告知我可能出错的地方或我是否以正确的格式应用它。我很乐意在你的帮助下继续调查学习曲线。提前致谢

HTML代码:

$(document).on('pagebeforeshow', '#blogposts', function () {
$.ajax({
    url: "http://howtodeployit.com/category/daily-devotion/feed/?json=recentstories" ,
    dataType: "json" ,
    beforeSend: function () {$('.loader').show();},
    complete: function () {$('.loader').hide();},
    success: function (data){
        $('#postlist').empty();
            $.each(data.posts, function (key, val) {
            //Format date
            var dateString = val.date.split(' ')[0];
            var vdate = dateString.split("-")[1] + " " + monthStrings[parseInt(dateString.split("-")[1])] + ", " + dateString.split("-")[0];
            //Output data collected into page content
                var rtitle = $('<p/>', {'class' : 'vtitle', html: val.title}); rdate = $('<p/>', {'class': 'vdate' , html: vdate});
                rid = $('<a href="#d-posts" onclick="showPost(' + val.id + ')"></a>');
                var rappend = $('<li/>').append(rtitle, rdate);
                console.log($('#postlist').append($(rappend).wrapInner(rid).fadeIn(600)));
                $('#postlist').listview({
                    autodividers: true,
                    autodividersSelector: function (li) {
                        var out = $(li).find(vdate)
                        console.log(out.selector);
                        return out.selector;
                    }
                });
                return (key !== 5);
            });
        $("#postlist").listview().listview('refresh').append('<div class="more-posts" style="text-align: center;">Load more posts...</div>');
    },
    error: function (data) {
        alert("Service currently not available, please try again later...");
    }

});

});

1 个答案:

答案 0 :(得分:0)

不想留下这个没有答案,所以我发布了下面有效的代码。

$('#postlist').listview({
    autodividers: true,
    autodividersSelector: function (li) {
       var out = li.find("p").map(function() {return $(this).text();});
       var outresult = out.get(1);
    return outresult;
    }
});