This you will find an example :
<div id="first_div">First Div<div>
<div id="second_div">Second Div<div>
$('#first_div').show().delay(2000).fadeOut(300);
$('#second_div').show().delay(2000).hide();
as you can see, fadeOut() is called after 2 seconds; hide() is called immediatly. Why? hide() doesnt wait delay() function.
From Jquery Delay
Basically, fadeOut uses effects queue and hence is delayed. But show(), hide() don’t follow any queue