Reputation: 4132
I have the below global jQuery function stored, but on page load, I want to execute it after a 1000 delay. Is there something wrong with my syntax? I know the delay always goes before the function. It is not responding.
Global function:
function showpanel() {
$(".navigation").hide();
$(".page").children(".panel").fadeIn(1000);
;}
Executing function:
parallax.about.onload=function(){
$('#about').delay(3000).showpanel();
};
Upvotes: 87
Views: 283840
Reputation: 915
You can simply use jQuery’s delay() method to set the delay time interval.
HTML code:
<div class="box"></div>
JQuery code:
$(document).ready(function(){
$(".show-box").click(function(){
$(this).text('loading...').delay(1000).queue(function() {
$(this).hide();
showBox();
$(this).dequeue();
});
});
});
You can see an example here: How to Call a Function After Some Time in jQuery
Upvotes: 0
Reputation: 719
I searched and found the solution in the following URL is better.
http://www.tutorialrepublic.com/faq/call-a-function-after-some-time-in-jquery.php
It worth to try.
It adds your given function to the queue of functions to be executed on the matched element which is currently this.
$(this).delay(1000).queue(function() {
// your Code | Function here
$(this).dequeue();
});
and then execute the next function on the queue for the matched element(s) which is currently this again.
Take a look at the command
We command the jQuery engine to add a function in internal queue and then after a specific amount of time we command it to call that function, BUT so far we never told it to dequeue it from engine. Right?! And then after every thing is done we are dequeue it from jQuery engine manually. I hope the explanation could help.
Upvotes: 55
Reputation: 3060
You can add timeout function in jQuery (Show alert after 3 seconds):
$(document).ready(function($) {
setTimeout(function() {
alert("Hello");
}, 3000);
});
Upvotes: 39
Reputation: 5416
This answer is just useful to understand how you can make delay using JQuery delay
function.
Imagine you have an alert and you want to set the alert text then show the alert and after a few seconds hide it.
Here is the simple solution:
$(".alert-element").html("I'm the alert text").fadeIn(500).delay(5000).fadeOut(1000);
It is completely simple:
.html()
will change the text of .alert-element
.fadeIn(500)
will fade in after 500 millisecondsdelay(5000)
function will make 5000 milliseconds of delay before calling next function.fadeOut(1000)
at the end of the statement will fade out the .alert-element
Upvotes: 1
Reputation: 87073
$(document).ready(function() {
// place this within dom ready function
function showpanel() {
$(".navigation").hide();
$(".page").children(".panel").fadeIn(1000);
}
// use setTimeout() to execute
setTimeout(showpanel, 1000)
});
For more see here
Upvotes: 158