1

AJAX と JS の初心者なので、ご容赦ください。

私は2つのイベントで動作するAJAXを持っています:

  1. ページがロードされたとき
  2. ボタンがクリックされたとき

この AJAX には、urlページネーション用のいくつかの変数があります。

url: "http://localhost/myurl/" + keyword + "/" + limit + "/" + offset

この AJAX は、ページが読み込まれると正常に動作しますが、ユーザーがボタンをクリックしたときに再度呼び出す/使用する方法がわかりません。

そして、私は.click関数をAJAX自体に入れているので、基本的には親を思い出す必要があります。これは、私がやりたいことを示すコードです:

$.ajax({
        url: "example" + limit + offset
        type: "GET",
        error : function(jq, st, err) {
            alert(st + " : " + err);
        },
        success: function(result){
        $("#btnLoad").click(function(){
                    //recall this AJAX again here
                                            offset = (page - 1) * limit;
                    page++;
                });
        }
        });

コードのコピーと貼り付けが機能することはわかっていますが、AJAX はかなり長いため、そうしたくありません。

どんな助けでも大歓迎です、ありがとう:D

4

7 に答える 7

7

イベント ハンドラーに追加し、ページ読み込み時にイベントをトリガーします。

$("#btnLoad").on('click', function() {
    $.ajax({
        url: "example" + limit + offset
        type: "GET",
        ....
    });
}).trigger('click');
于 2013-08-02T10:11:36.950 に答える
3

AJAX 呼び出しを抽象化できます。このような:

$(document).ready(function(){
  //this is called when the page is loaded

  //variable that hold your offset and limit in the scope of the this function
  var limit = 10,
      offset = 0,
      page = 1;

  function ajaxCall(){
    $.ajax({
        url: "example" + limit + offset
        type: "GET",
        error : function(jq, st, err) {
            alert(st + " : " + err);
        },
        success: function(result){
          offset = (page - 1) * limit;
          page++;
        });
  };

  //register event for click on button
  $("#btnLoad").on('click', ajaxCall);


  //do the initial ajax call
  ajaxCall();

});

これは完璧な解決策ではありませんが、あなたがなりたい場所に近づくはずです. ここで考慮すべき事項は次のとおりです。

  • 成功のコールバックがオフセットとページを更新する前に、ユーザーがもう一度ボタンをクリックするとどうなりますか?
于 2013-08-02T10:24:31.407 に答える
1

シヴァンが言ったように:関数を作成し、ページが読み込まれたときと何かがクリックされたときにそれを呼び出します。このような:

$(function(){
    MyAJAXFunction();
    $(".button").click(function(){
        MyAJAXFunction();
    });
});

function MyAJAXFunction() {
    // AJAX call here
}
于 2013-08-02T10:18:46.783 に答える