2012-01-13 21 views
0

後我的代碼重新運行jQuery的每個AJAX負載

var expired_overlay=$('.expired-overlay'); 

expired_overlay.each(function(){ 
var t=$(this), 
    p=$(this).closest('.coupon'), 
    ph=p.height()+ ((p.css('padding-top').replace("px", ""))*2); 
t.css({'width':p.width(),'height':ph,'opacity':0.5}) 

}); 

此運行在所期望的項目firstload。但是腳本可能需要使用AJAX加載新項目。新項目加載後再次運行此代碼的最佳方式是什麼?

謝謝。

+0

您需要在加載ajax內容後再次運行.each循環。 因此,作爲函數,並在ajax調用完成後再次調用:) – 2012-01-13 22:02:50

回答

2

嘗試使用ajaxComplete處理程序。

http://api.jquery.com/ajaxComplete/。它會在所有AJAX調用完成時觸發。

$('.log').ajaxComplete(function() { 
    SpecialFunction(); 
}); 

SpecialFunction() { 
    var expired_overlay=$('.expired-overlay'); 

    expired_overlay.each(function(){ 
    var t=$(this), 
    p=$(this).closest('.coupon'), 
    ph=p.height()+ ((p.css('padding-top').replace("px", ""))*2); 
    t.css({'width':p.width(),'height':ph,'opacity':0.5}) 

    }); 
}