2013-10-15 36 views
0

您好我有一個從專家的建議如下,我試圖根據這些建議,重建我的代碼:使用jQuery傳遞JSON數據轉換成的DIV

  • 從$。每(),您可以返回true或假。如果您返回false,則 循環停止。
  • 請勿嘗試從連接字符串構建HTML。這很容易被XSS 漏洞輕易避免。 jQuery爲您提供了安全地構建HTML的工具 。
  • 通常,出於同樣的原因,儘量避免使用.html(), ,特別是如果您已經有DOM元素可以使用。
  • 請勿使用內聯事件處理程序,如onclick。完全一樣。永遠。

這是我工作的新代碼:

var page = 1; 
$(document).on('click', '#devotionclick', function blogs() { 
    $('#postlist').empty(); 
    // $('#category').prepend('<div class="categories_listing"><span data-type="blogs" data-category="5">Blog Category</span></div>'); 
    var count = "5"; 
    var result = $.getJSON('http://howtodeployit.com/api/get_posts/?count=' + count + '&page=' + page, function (data, status) { 
     if (data !== undefined && data.posts !== undefined) { 
      $.each(data.posts, function (i, item) {  
       var str = item.title; 

       $('#postlist').append('<div class="article"' + item.id + '"><div>' + item.title + '</div><div>' + item.excerpt + '</div></div>'); 
       if (data !== undefined) { 
        $('#stats').text('Page ' + data.query.page + ' of ' + data.pages + ' | Total posts ' + data.count_total + ''); 
       } 
       if (data.query.page < data.pages) { 
        $("#loadmore").show(); 
       } else { 
        $("#loadmore").hide(); 
       } 
      }); 
      page++; 
     } 
    }); 
    $('#postlist').append('<div id="loadmore"><div id="stats"></div><div id="loadmore">load more</div></div>'); 
    $('#loadmore').click(blogs); 
}); 

HTML:

!-- Page: home --> 
    <div id="home" data-role="page"> 
     <div class="ui_home_bg" data-role="content"></div> 
     <div data-role="listview"> 
      <a href="#devotion" id="devotionclick" data-role="button">Daily Devotional Messages</a> 
     </div><!-- links --> 
    </div><!-- page --> 

<!-- Page: Daily Devotional Messages --> 
    <div id="devotion" data-role="page"> 
     <div data-role="header" data-position="fixed"> 
      <h2>Daily Devotional Messages</h2> 
     </div><!-- header --> 
     <div data-role="content" id="postlist"> </div><!-- content --> 
    </div><!-- page --> 

我現在我遇到的問題是:

  1. 當我點擊它加載前5個帖子的按鈕,但是當我點擊'加載更多'文本時,它會加載下一個5,而不是追加到現有的列表。

  2. 的列表不顯示這應該是一個可點擊ListView項

回答

1

問題1
這是因爲在單擊處理 ....你是去除所有項目加載新項目之前的頁面。刪除該內容