0

私はCMSとしてmagentoを使用しており、ページネーションのためにajaxを実装しようとしています。

現在2ページありますが、構造はこんな感じです、

<div class="pager">
        <div class="pages">
          <strong>Page:</strong>
          <ol>
             <li class="current">1</li>
             <li>
                <a href="http://localhost/Bakestore/index.php/tools.html?p=2" class="pageLinks">2</a></li>
             <li class="pager_next_img">
                <a class="next i-next pageLinks" href="http://localhost/Bakestore/index.php/tools.html?p=2" title="Next">
                <img src="http://localhost/Bakestore/skin/frontend/default/Bakestore_Theme/images/pager_arrow_right.gif" alt="Next" class="v-middle">
                </a>
            </li>
          </ol>
    </div>
</div>

私のjQueryajaxコードは次のとおりです。

$j(".pages li a").each(function(){
    $j(this).removeClass('pageLinks').addClass('pageLinks');                                
});

$j(".pageLinks").click(function(e){
    e.preventDefault();
    var anchorSel =  $j(this).attr('href');
    $j.ajax({
        type: "POST", 
        datatype: "HTML",
        cache: true,
        url: anchorSel,

        success: function(data){
            var testdata = $j(data).find(".category-products");
            $j(".col-main .category-products").replaceWith(testdata);
            },

        complete: function(data){
                        $j(".pages li a").each(function(){
                            $j(this).removeClass('pageLinks').addClass('pageLinks');                            });
                            alert($j(".col-main .category-products .toolbar > .pager").html());
                         }
});

クリックすると正常に動作しますPage 2が、2ページ目からPage 1を押すとページがリロードされます。今、私がPage 2もう一度打つとき、それはうまくいきます。

jQueryをデバッグしましたが、残念ながら、イベント$j(".pageLinks").clickはまったく発生しません(をクリックしたときPage 1)。

私がどこで間違っているのか考えていますか?

4

1 に答える 1

2

リターンHTMLにページネーションリンクが含まれていますか?その場合は、に変更する必要があり.click(function(){ます.live('click', function(){

クリックは、既存の要素のみをそのイベントハンドラーにバインドします。liveは、まだ存在していない要素を除いて同じことを行います。

ライブは確かに非推奨です。1.7を使用している場合、私はあなたがそうだとは思わない。次のように変更する必要があります

$(document).on('click', ".pageLinks", function(){

}); 
于 2012-05-30T05:35:43.110 に答える