2013-03-08 67 views
1

我需要您的幫助來獲取json feed中更多文章的一些ajax/jquery請求。加載json feed的更多文章

$(document).ready(function() { 
var output = $('#news'); 
var count = "2"; 
var page = "1"; 
$.ajax({ 
    url: 'http://domain.com/api/get_recent_posts/?post_type=news&count=' + count + '&page=' + page + '&callback=?', 
    async: false, 
    callback: 'callback', 
    crossDomain: true, 
    contentType: 'application/json; charset=utf-8', 
    type: 'POST', 
    dataType: 'jsonp', 
    timeout: 5000, 
    success: function (data, status) { 
     $.each(data.posts, function (i, item) { 
      var news = '<li>' + item.title + '</li>'; 
      output.append(news); 
     }); 

     if (data !== undefined && data !== undefined) { 
      $('#stats').append('Page ' + page + ' of ' + data.pages + ' | Total posts ' + data.count_total + ''); 
     } 

    }, 
    error: function() { 
     output.html('<h1 class="error">There was an error loading the data.</h2>'); 
    } 
}); 
}); 

我需要做的是:通過點擊鏈接(負載更多)頁面應顯示標題「VAR頁=‘2’」等等,但是,當它到達最後一個頁面的鏈接應該消失。希望它確實有道理。

請參見下面的現場小提琴: http://jsfiddle.net/AGGjj/

非常感謝提前。

+0

我看到的鏈接沒有點擊事件?你應該增加'page'和'count'值來加載一個新的url。 – soyuka 2013-03-08 12:19:05

+0

'if(data!== undefined && data!== undefined)'?仔細檢查? – Popnoodles 2013-03-08 12:19:35

回答

2

每一個誰也有了答案:

$(document).ready(function() { 

var output = $('#news'); 
var count = "2"; 
var page = "1"; 
var load = function() { 
$.ajax({ 
    url: 'http://domain.com/api/get_recent_posts/?post_type=news&count=' + count + '&page=' + page + '&callback=?', 
    async: false, 
    callback: 'callback', 
    crossDomain: true, 
    contentType: 'application/json; charset=utf-8', 
    type: 'POST', 
    dataType: 'jsonp', 
    timeout: 5000, 
    success: function (data, status) { 
     $.each(data.posts, function (i, item) { 
      output.append($('<li />').text(item.title)); 
     }); 

     if (data !== undefined && data !== undefined) { 
      $('#stats').text('Page ' + page + ' of ' + data.pages + ' | Total posts ' + data.count_total + ''); 
     } 
     if (page == data.pages) { 
      $("#loadmore").remove(); 
     } 
     page++; 

    }, 
    error: function() { 
     output.html('<h2 class="error">There was an error loading the data.</h2>'); 
    } 
}); 
}; 
//add click handler 
$('#loadmore').click(function() {load();}); 
//load first page 
$('#loadmore').trigger('click'); 
//or 
load(); 
}); 
+0

萬謝謝JoDev,有沒有辦法如何避免乘法 - Page 1 of 3 |總帖子6 – qqruza 2013-03-08 13:12:46

+0

它已經完成。我在同一時間看到這個問題:)我只是用「.text」替換「.append」 – JoDev 2013-03-08 13:14:46

+0

你是一個了不起的開發者JoDev! – qqruza 2013-03-08 13:17:25

0

在成功函數的末尾添加

success: function (data, status) { 
    $.each(data.posts, function (i, item) { 
     var news = '<li>' + item.title + '</li>'; 
     output.append(news); 
    }); 

    if (data !== undefined && data !== undefined) { 
     $('#stats').append('Page ' + page + ' of ' + data.pages + ' | Total posts ' + data.count_total + ''); 
    //just test if the current page is the last one 
    if(page == data.pages) { 
     $('link selector').hide(); 
     or remove 
     $('link selector').remove(); 

    } 
    } 

}, 
+0

如何顯示更多的文章,目前它只顯示2從第1頁,但我需要通過點擊加載更多等等顯示兩個更多等,直到我到達最後一頁,然後加載更多應該被刪除 – qqruza 2013-03-08 12:24:52

+0

不要忘記在成功函數(頁面++;)的末尾增加「頁面」變量。 – JoDev 2013-03-08 12:32:17

+0

我真的很抱歉再次問,但我在jquer/ajax中完全堅強,你能否調整我的小提琴?真的很感謝你的幫助JoDev。 – qqruza 2013-03-08 12:33:47