-1

私はページネーションとjQueryをいじっています.私のコードは最初に次のようになりました:

$(function() {
    $(".pagination a").live("click", function() {
        $.get(this.href, null, null, "script");
        return false;
    });
});

その後、jQuery 1.9 で削除されたことに気付いたliveので、コードを次のように変更しました。

$(function() {
    $(".pagination").on("click", 'a', function() {
        $.get(this.href, null, null, "script");
        return false;
    });
});

しかし、どういうわけかこれもうまくいきません!問題は、最初の ajax ページから 2 番目のページに移動できるが、2 番目のページから最初のページに戻るか、3 番目のページに移動して ajax が機能しないことです。私のコードは、新しく追加された を認識しないためだと思います.pagination a

4

4 に答える 4

5
  • on既存の要素にのみバインドされます。使用後に挿入された要素をリッスンするon場合は、セレクター引数を追加する必要があります。
    セレクター引数がある場合はデリゲート イベントですが、ない場合はダイレクト イベントです。
  • onデリゲート イベント シグネチャを使用した場合、コールバックはonが呼び出されたセレクタにバインドされます$('thisSelector')が、 のようなセレクタ引数の要素のイベントをリッスンします
    $('foo').on('event', 'thisSelector', func)
  • パフォーマンスを向上させるには、新しく挿入された要素に最も近い静的要素に関数をアタッチする必要があります。これが実際に、バージョン 1.9 で jQuery から削除されonた主な理由であり、リスナを にアタッチすると、パフォーマンスが大幅に低下します。livelivedocument

上記から学んだこと.paginationは、 を呼び出すときに既に DOM にあることを確認する必要がありon、置き換えてはならないということです。

今、あなたは次のようなものを持ってくるべきです:

$("{staticElement-closeToTheNewElements}").on("click", '.pagination a',callback);
于 2013-09-17T17:58:24.090 に答える
1

Could you try this?

$(function () {
    $(document).on("click", ".pagination a", function () {
        $.get(this.href, null, null, "script");
        return false;
    });
});
于 2013-09-17T17:49:49.843 に答える
1

あなたが呼び出す場合:

$(document).on("クリック", '.pagination a', function(){...})

次のようにする必要があります。

$('#container-element').on("click", '.pagination a', function(){...})

セレクターに一致する動的に作成された要素で イベントを呼び出します。

最適な答えについては、上記を参照してください。

于 2013-09-17T17:51:49.590 に答える
0

あなたの html がこれに似ていることを願っています: クラスのページネーションを含む div が ajax を介してロードされている場合、それは静的ではないため、イベント委任に使用しても役に立ちません。

 <body>
    <div id="static_div">
      <div class="pagination">
        <a href="" id="alink">I'm a link</a>
      </div>
    </div>
 </body>

使用する

$('#static_div').on('click', '.pagination a', function(){...});

パフォーマンスを向上させるために、ページネーションに最も近い静的コンテナーを使用bodyまたは使用しないことをお勧めします。document

于 2013-09-17T17:56:10.743 に答える