$('.transparent').removeClass('transparent').delay(2000).addClass('not_transparent').delay(4000)
I have a div that is semi transparent and then want to switch it to not transparent. But the jQuery .delay(); method doesn't seem to work here. I've tried .fadeIn(); instead and that works with a delay but it doesn't work the changing classes.
The jQUery delay () method sets a timer to delay the execution of the next item in the queue. Syntax: $(selector). delay (speed, queueName)
jQuery delay() Method The delay() method sets a timer to delay the execution of the next item in the queue.
Conclusion. setTimeout() is a method that will execute a piece of code after the timer has finished running. let timeoutID = setTimeout(function, delay in milliseconds, argument1, argument2,...); The delay is set in milliseconds and 1,000 milliseconds equals 1 second.
The standard way of creating a delay in JavaScript is to use its setTimeout method. For example: console. log("Hello"); setTimeout(() => { console.
.delay()
is used for items that are part of a queue
, like animations. A simple addClass
is not queued.
You could use setTimeout
.
var trans = $('.transparent').removeClass('transparent'); setTimeout(function() { trans.addClass('not_transparent'); }, 2000);
As an alternative, you could add the non-queued item to the queue using .queue()
, though I think a setTimeout
would be better.
$('.transparent').removeClass('transparent').delay(2000).queue(function(nxt) { $(this).addClass('not_transparent'); nxt(); });
I know this is an old question, but there's still a lot of traffic coming here from google so I'll add my two cents;
You could use something like -
$('.transparent').fadeIn().delay(500).queue(function(){ $('.transparent').addClass('yourclass'); });
You can pass a function to the queue in order to execute them after the delay. Have been using this myself for very similar examples.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With