0
我有.ajaxComplete綁定到鏈接點擊事件,我需要它只觸發一次。擁有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通話每增加點擊堆。我如何防止這種情況?
我這樣做了,但回調函數在頁面加載之前觸發。 – jppower175
在這種情況下,嘗試使用您當前的方式,但在調用load之前解除ajaxComplete事件,如下所示:$(hashUrl).unbind('ajaxComplete'); 編輯: 在調用load之前,您應該綁定ajaxComplete事件,以防裝載完成之前綁定ajaxComplete。 – Lian
它做到了,謝謝你! – jppower175