我正在尝试使用完整回调中的其他参数重新执行该函数,但它无法正常工作。它在第一次调用时运行良好,但是当我再次调用它时,它只会警告测试警报两次,并且不会再次执行该函数。我的目的是使用另一个参数执行该函数,即每次用户单击元素时元素的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
});
答案 0 :(得分:0)
尽量不要在完成时调用load_pages()
,因为它会导致Recursive function,这会导致内存不足。
相反,请调出您的函数$.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]);
});
答案 1 :(得分:0)
没有看到为什么在完全回调中添加事件处理程序,在将元素追加到dom成功回调后绑定事件应该运行良好。并提供一些控制台/ XHR请求输出,以帮助检查您的问题,把更多的控制台日志而不是警报将有助于跟踪问题