2

ページの読み込み時に、私のgetJSON呼び出しはその出力を div (myDiv と呼ばれる) に表示します。

ページの最後にボタンを追加し、ユーザーがそのボタンをクリックしたときに別の呼び出しを行いたいgetJSONのですが、今回は、ユーザーがボタンをクリックするたびに page_number を 1 ずつ増やしたいと考えています。前の結果の最後に新しい結果を表示します。どうすればこれができるか教えてもらえますか?

<head>
  <script>
    //var counter = 1;
    $.getJSON('http://anyorigin.com/get?url=https://www.myothersite.com/getit.php?page_number=+counter&type=TopVideos&sortBy=newest&callback=?', function(data){
      var siteContents = data.contents;
      //writes to textarea
      document.myform.outputtext.value = siteContents;
      document.getElementById("myDiv").innerHTML=siteContents;
      $('#loadingimg').hide();
    });
  </script>
</head>
<body>
  <div class="MainDiv">
    <div class="MainContent">
      <div class="ContentWidth">
        <div id="JSListVideo" class="VideoList">
          <div id="myDiv"></div>

そしてボタンコード:

<div class="MoreButtonSection">
  <div class="RedButton">
    <span class="LeftEnd"></span>
    <span class="Centre">
      <a href="javascript:void(0);" onclick="seemore();" title="See more">see more</a>
    </span>
    <span class="RightEnd"></span>
  </div>
</div>
4

3 に答える 3

2

まず、コードを の中にラップします$(document).ready();

ボタンのイベントを作成してclick、ボタンがクリックされたときに呼び出さgetJsonれ、目的の div にデータを追加できるようにする必要があります。現在、コードはロード時に実行されるためです。

$(document).ready(function() {
  var counter = 1;
  $('button').on('click',function() {
    $.getJSON('http://anyorigin.com/get?url=https://www.myothersite.com/getit.php?page_number=+counter&type=TopVideos&sortBy=newest&callback=?', function(data) {
      var siteContents = data.contents;
      document.myform.outputtext.value = siteContents;
      $("myDiv").html(siteContents);
      $('#loadingimg').hide();
    });
    counter++;
  });
});
于 2013-03-22T03:37:05.510 に答える
2

答える前に、jQuery 構文または Javascript のいずれか 1 つのアプローチに固執することをお勧めします。ページネーションコードが必要だと思います。以下のコードは、役に立つかもしれません。

以下に、それを行う方法についていくつかのアイデアを提供したいと思います。私が間違っている場合は、私を修正してください。

//initialize page number to 1 default
var pagenumber=1;
$(document).ready(function(){
  //load first page records on page load
  getResult(pagenumber);
});

//pass pagenumber to function to fetch correct page records
function getResult(pagenumber){
  $.getJSON('http://anyorigin.com/get?url=https://www.myothersite.com/getit.php?page_number='+ pagenumber +'+counter&type=TopVideos&sortBy=newest&callback=?', function(data){});
  //after every call increment page number value
  pagenumber++;
}
$('btnLoadMore').click(function(){
  //simply call getResult
  getResult(pagenumber);
});

seemore()コード内で関数が見つかりません。おそらく、あなたはこのようなものが欲しいでしょう。HTML は次のようにする必要があります。

<a href="#" onclick="return seemore();" title="See more">see more</a>

JS は次の条件を満たしている必要があります。

function seemore(){
  counter++;
  return false;
}

counterアクセスできるように、グローバル変数にする必要があります。あなたの URL がわからない:

http://anyorigin.com/get?url=https://www.myothersite.com/getit.php?page_number=+counter&type=TopVideos&sortBy=newest&callback=?

私はそれがあるべきだと思います:

http://anyorigin.com/get?url=https://www.myothersite.com/getit.php?page_number='+ counter +'&type=TopVideos&sortBy=newest&callback=?
于 2013-03-22T03:37:53.140 に答える
1

現在の値に値を追加するだけです。以下を見てください:

document.getElementById("myDiv").innerHTML += siteContents;
于 2013-03-22T03:17:26.180 に答える