.delay()
only works with methods that use jQuery's animation queue such as animations because it works by inserting a delay animation into the queue so the only things that wait for it are other thing in the animation queue. It does not work with regular jQuery methods as they just get executed right away evne though there's a delay sitting in the animation queue.
To make an actual delay, you can just use a regular setTimeout()
.
setTimeout(function() {
$('#messageDelete').toggle("blind");
}, 100);
setTimeout(function() {
$('#messageDelete').toggle("blind");
}, 900);
setTimeout(function() {
$('#parentProgress').toggle("fade").remove();
}, 1000);
Other related answers: Jquery delay function not working and jQuery: code stops working after adding delay() and removeClass() and jQuery within a JavaScript for loop not working