0

我正在尝试使用完整回调中的其他参数重新执行该函数,但它没有按我的意愿工作。它在第一次调用时运行良好,但是当我再次调用它时,它只会提醒测试警报两次并且不会再次执行该函数。我的意图是使用另一个参数执行该函数,即每次用户单击元素时元素的 id。我很感激如果有人可以帮助我,我该怎么办?谢谢。=)

 jQuery(function($){  

    var load_pages = function($page){  
            $.ajax({  
                type       : "POST",  
                data       : {page_name : $page},  
                dataType   : "html",  
                url        : "http://localhost/includes/loadpages.php",
                beforeSend : function(){
                    $("#content").addClass("hide");

                    if($page.substr(0,9) == "categoria"){
                        $("#content").removeClass("hide");
                        $("#the-portfolio").remove();
                    }

                },
                success    : function(data){
                    $data = $(data);  
                    if($data.length){
                        if($page == 'lista_portfolio'){
                            $(".submenu").append($data);
                            $(".submenu").append('<div class="end"></div>');

                        }
                        else{
                            if(!$("#content") ==  false){
                                $("#wrapper").append('<div id="content"></div>');
                            }
                            $("#content").append($data);  
                            $(".foot").animate({bottom: 0},700,'easeOutExpo');
                            $data.fadeIn(500);

                        }   
                    } 
                },  

                error     : function(jqXHR, textStatus, errorThrown) {  
                    alert(jqXHR + " :: " + textStatus + " :: " + errorThrown);  
                }, 

                complete : function() {
                    $("#portfolio_categories_list li a").click(function(){
    alert("test");
                        $categoria = $(this).attr("title").split("Ver todos os posts arquivados em ");
                        load_pages("categoria"+$categoria[1]);
                        return false;
                        });
                }
        });
        }// end load_pages
});
4

2 回答 2

0

没有看到为什么在完成回调中添加事件处理程序,在成功回调中将元素附加到 dom 后绑定事件应该可以正常工作。请提供一些控制台/XHR 请求输出以帮助检查您的问题,放置更多控制台日志而不是警报将有助于跟踪问题

于 2014-04-24T15:06:30.577 回答
0

尽量不要调用load_pages()完成,因为它会导致一个递归函数,这会使你耗尽内存。

相反,调用你的函数$.ajax然后通过绑定事件click,像这样。

 $(document).on("click","#portfolio_categories_list li > a",function(e){

       e.preventDefault();

       alert("test");
       $categoria = $(this).attr("title").split("Ver todos os posts arquivados em ");
       load_pages("categoria"+$categoria[1]);

 });
于 2013-09-05T17:56:11.193 回答