我使用ajaxStart和ajaxStop来显示加载的gif。 它工作正常,直到我添加这段代码:
$(function(){
$('.link a').live('click', function(ev) {
ev.preventDefault();
ev.stopPropagation();
$('#main').load($(this).attr('href'));
return false;
});
});
这是我的ajaxStart / Stop代码:
$(document).ajaxStart(function(){
$("#loading").show();
}).ajaxStop(function(){
$("#loading").hide();
});
请帮助:)
编辑:我添加了导致问题的代码,添加了启用div中页面的链接以在单击时加载div本身中的链接,而不是加载整个窗口。在新加载页面时,AjaxStart和AjaxStop工作正常,但是一旦我单击div中的链接(加载页面),AjaxStart就不会触发。
链接的代码(位于div内的页面中):
echo "<span class = 'link'><a href='feed.php?".$new_query_string ."' id='page_a_link' name='page_a_link' >$i</a></span>";
echo "<span class = 'link'><a id='page_a_link' name='page_a_link' href='feed.php?".$new_query_string ."' >< Pre</a></span>";
echo "<span class = 'link'><a href='feed.php?".$new_query_string ."' id='page_a_link' name='page_a_link' >Next</a></span>";
这些是用于分页的。我刚从PHP代码中取出了链接部分。
答案 0 :(得分:0)
我认为问题在于,当您重新加载页面时,内容以及分页链接会被替换,您将丢失旧的绑定点击事件
试试这段代码:
$(function(){
function bindPagination() {
$('span.link a').on('click', function(ev) {
ev.preventDefault();
// ev.stopPropagation();
$('#main').load($(this).attr('href'), function(){
//callback function fired when page loaded
//now rebind click event
bindPagination();
});
return false;
});
}
});
并尝试以这种方式更改“加载器”:
$('#loader')
.bind("ajaxSend", function() {
$(this).show();
})
.bind("ajaxComplete", function() {
$(this).hide();
});