$(this).delay('3000').hideMessage();
не работает.
hideMessage это функция, а не метод, к ней нельзя обращаться таким образом.
Сделал так, вроде работает:
var canHide=true;
function hideMessage() {
if (canHide) {
$('.green_message').hide('blind', 700);
}
canHide=false;
};
$('.green_message').fadeIn(700, function() {
setTimeout(hideMessage, 3000);
});
$('.green_message a').click(function(event) {
hideMessage();
event.preventDefault();
});