$('.file a').live('mouseenter', function() {
$('#download').stop(true, true).fadeIn('fast');
}).live('mouseleave', function() {
$('#download').stop(true, true).fadeOut('fast');
});
I want the mouseenter function to have a stop() and a delay of 1 second.
So, if I hover over #download the fadeIn should start after a 1 second delay. If I mouse out meanwhile the fadeIn shouldn’t start. Get me?
I don’t really know how to do that, any ideas?
You need to use
setTimeout()in this case because of how.delay()works (and your inability to cancel it).You can give it a try here.
If you use
.delay()it’ll dequeue the next animation for the element, regardless of if you cleared that queue earlier. So you need a timeout that you can cancel, which the above does by manually callingsetTimeout()and storing the result with$.data()so you can clear it later, viaclearTimeout().