David,
Thank you so much for the suggestion. As you expected, it worked
perfectly for me. I ended up with the following:
function addHoverHide(linkClass, layerId) {
var t;
$(a. + linkClass).hover(function() {
clearTimeout(t);
// custom function which creates drop shadows around layerId
createShadowbox(layerId,this);
}, function() {
t = setTimeout(function() {$(# + layerId).hide()}, 1500);
});
// if user hovers over the floating layer
$(#+layerId).hover(function() {
clearTimeout(t);
}, function() {
t = setTimeout(function() {$(# + layerId).hide()}, 1500);
});
}
Thanks again!
-victor
On Jan 23, 7:09 pm, David Serduke [EMAIL PROTECTED] wrote:
How about using closure like this?
function addHoverHide(linkClass, layerId) {
var t;
$(. + linkClass).hover(function() {
clearTimeout(t)
$(# + layerId).show();
}, function() {
t = setTimeout(function() {$(# + layerId).hide()}, 2000);
});}
$(document).ready(function () {
addHoverHide(some_link, this_layer);
addHoverHide(some_other_link, this_other_layer);
});
Untested but the idea should work. Good luck.
David
On Jan 23, 6:42 pm, gr00vy0ne [EMAIL PROTECTED] wrote:
This is more of a general javascript question but when using
setTimeout and clearTimeout, does the timer variable have to exist
outside the function globally?
For instance, I understand the following:
var t;
$(.some_link).hover(function() {
clearTimeout(t)
$(#this_layer).show();}, function() {
t = setTimeout(function() {$(#this_layer).hide()}, 2000);
}
Is there a way to create the timer within the jquery hover so that
it's self-contained? Ideally, I'd like the timer to be dynamically
created as necessary so if I add other hovers then I don't need to
keep adding new variables to store the timer.
Would I have to create an array that stores each unique timer? Is that
the way to go?