Существует очень важное различие между вашим кодом, где вызывается alert()
, и кодом, в котором вы устанавливаете задержку: метод .each()
вызывает вашу функцию обратного вызова для каждого <span>
в отдельности. Вот почему получение значения атрибута работает. В вашем вызове .delay()
код оценивается с this
, установленным на то, чем он является в контексте вызова.
Это легко исправить: выполните ваши .delay()
вызовы также в .each()
обратном вызове:
$(".fadeIn").each(function() {
$(this).delay(parseInt($(this).attr("fadeInAfter"))).fadeIn(1000);
});