0

我正在添加一个 LoadMore 函数,以根据当前显示的帖子的长度和 DOM 中的总帖子添加更多帖子。我遇到的问题是,当我控制台记录 listofposts 并检查 Google Chrome 中的元素时,我看到长度显示为零 (0)。我不确定我到底哪里出了问题,或者我采取的方法是否正确,或者我应该先加载前 4 个帖子来分离这两个函数,然后创建一个单独的新函数来处理附加?

$(document).on('pagebeforeshow', '#blogposts', function() {     
    //$.mobile.showPageLoadingMsg();    
        $.ajax({
            url: "http://howtodeployit.com/category/daily-devotion/?json=recentstories&callback=",
            dataType: "json",
            jsonpCallback: 'successCallback',
            async: true,
            beforeSend: function() { $.mobile.showPageLoadingMsg(true); },
            complete: function() { $.mobile.hidePageLoadingMsg(); },
            success:function(data){

            var $listofposts = $('data');
            console.log($listofposts);
            var $loadMore = $listofposts.parent().find('.load-more');
           //   console.log($loadMore);

            currentPage = 0;
            postsPerPage = 4;

            var showMorePosts = function () {

                $offset = currentPage * postsPerPage, //initial value is 0

                    posts = data.posts.slice($offset, $offset + postsPerPage);
                    console.log(posts);
                    $.each(posts, function(i, val) {
                    //console.log(val);
                    $("#postlist").html();
                    var result = $('<li/>').append([$("<h3>", {html: val.title}),$("<p>", {html: val.excerpt})]).wrapInner('<a href="#devotionpost" onclick="showPost(' + val.id + ')"></a>');
                    $('#postlist').append(result);
                    console.log(result);
                    });

                    if(posts.length !== postsPerPage){
                        alert ('True');
                        $loadMore.hide();
                    }

                    currentPage++;
                    $("#postlist").listview();
                    $("#postlist").listview('refresh');
                    }

                    showMorePosts();
                    $loadMore.on('click', showMorePosts);

                }});
4

1 回答 1

1
var $listofposts = $('data');

正在向 jQuery 询问<data>文档中所有标签的列表。您可能想$(data)改用。

于 2013-10-23T07:44:22.607 回答