每次加载AJAX后重新运行jQuery

每次加载AJAX后重新运行jQuery,jquery,ajax,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})

我有密码

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加载新项目。加载新项后再次运行此代码的最佳方式是什么


谢谢。

尝试使用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})

  });
}

加载ajax内容后,需要再次运行.each循环。因此,将其作为函数,并在ajax调用完成时再次调用:)