0

我使用 magento 作为我的 CMS,试图实现 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>

我的 jQuery ajax 代码如下,

$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(){

click 仅将现有元素绑定到该事件处理程序。除了尚未出现的元素外,live 也是如此。

live 确实被弃用了。如果您使用的是 1.7,我认为您不是。你应该把它改成

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

}); 
于 2012-05-30T05:35:43.110 回答