function afterTransition(func, delay){
$(".block").css('transition','all '+delay+'ms ease 0s');
setTimeout(function() {
func();
}, delay);
}
afterTransition(function(){
alert('hello');
}, 59000);
Но мне совершенно не нравится то, как вы пытаетесь воспользоваться cssТранзишном.
Обратите внимание на jQuery
animate
У него гораздо удобнее работа с последовательностью
Фактически там можно использовать цепные вызовы
$('selector').animate({top: 0}, 1000)
.animate({top: 100}, 1000)
.animate({top: 0}, 1000)
.animate({top: 100}, 1000)
.animate({top: 0}, 1000)
.animate({top: 100}, 1000);
и так до бесконечности.
А так же колбек и все дела
$('selector').animate({
top: 0
}, 1000, function(){
// функция сработает по завершению анимации
// в вашем случае тут можно вывести алерт
});