我将 .ajaxComplete 绑定到一个链接点击事件,我只需要它触发一次。
$(document).delegate('.links', 'click', function(evt) {
evt.preventDefault();
var origanalUrl = $(this).attr('href');
var hrefRegEx = /^(^\/?{[A-Za-z\_]*\/?)?([A-Za-z\_]+)(\.php)$/
var hashUrl2 = origanalUrl.replace(hrefRegEx, '$2');
var hashUrl = '#' + hashUrl2;
var urlExt = ' #ajaxTarget';
var newUrl = origanalUrl + urlExt;
if(!$(hashUrl).html() && hashUrl != '#index') {
$(hashUrl).load(newUrl).ajaxComplete(function(event, XMLHttpRequest, ajaxOptions) {
newMain = $(hashUrl);
newHeight = newMain.outerHeight();
alert(newHeight);
$('#textBox_main').animate({
height: newHeight
}, 500, function() {
newMain.fadeIn(500);
});
oldMain = newMain;
});
} else {
isLoaded = true;
}
第一次点击很好,但每次额外的点击都会在下一次 ajaxComplete 调用时叠加。我该如何防止这种情况?