jQuery autohide element after 5 seconds
JqueryJquery UiJquery Problem Overview
Is it possible to automatically hide an element in a web page 5 seconds after the form loads using jQuery?
Basically, I've got
<div id="successMessage">Project saved successfully!</div>
that I'd like to disappear after 5 seconds. I've looked at jQuery UI and the hide effect but I'm having a little trouble getting it work the way I want it to.
<script type="text/javascript">
$(function() {
function runEffect() {
var selectedEffect = 'blind';
var options = {};
$("#successMessage").hide(selectedEffect, options, 500);
};
$("#successMessage").click(function() {
runEffect();
return false;
});
});
</script>
I'd like the click function to be removed and add a timeout method that calls the runEffect() after 5 seconds.
Jquery Solutions
Solution 1 - Jquery
$('#selector').delay(5000).fadeOut('slow');
Solution 2 - Jquery
$(function() {
// setTimeout() function will be fired after page is loaded
// it will wait for 5 sec. and then will fire
// $("#successMessage").hide() function
setTimeout(function() {
$("#successMessage").hide('blind', {}, 500)
}, 5000);
});
Note: In order to make you jQuery function work inside setTimeout you should wrap it inside
function() { ... }
Solution 3 - Jquery
You can try :
setTimeout(function() {
$('#successMessage').fadeOut('fast');
}, 30000); // <-- time in milliseconds
If you used this then your div will be hide after 30 sec.I also tried this one and it worked for me.
Solution 4 - Jquery
Please note you may need to display div text again after it has disappeared. So you will need to also empty and then re-show the element at some point.
You can do this with 1 line of code:
$('#element_id').empty().show().html(message).delay(3000).fadeOut(300);
If you're using jQuery you don't need setTimeout, at least not to autohide an element.
Solution 5 - Jquery
You use setTimeout on you runEffect function :
function runEffect() {
setTimeout(function(){
var selectedEffect = 'blind';
var options = {};
$("#successMessage").hide(selectedEffect, options, 500)
}, 5000);
}
Solution 6 - Jquery
I think, you could also do something like...
setTimeout(function(){
$(".message-class").trigger("click");
}, 5000);
and do your animated effects on the event-click...
$(".message-class").click(function() {
//your event-code
});
Greetings,
Solution 7 - Jquery
jQuery(".success_mgs").show(); setTimeout(function(){ jQuery(".success_mgs").hide();},5000);
Solution 8 - Jquery
This is how you can set the timeout after you click.
$(".selectorOnWhichEventCapture").on('click', function() {
setTimeout(function(){
$(".selector").doWhateverYouWantToDo();
}, 5000);
});
//5000 = 5sec = 5000 milisec