You are calling the lengthy jQuery chain *first* and then passing its result
to setTimeout. Your code is equivalent to:

var temp =
    $(['li.',o.hoverClass].join(''),this)
        .add(this)
        .not(not)
        .removeClass(o.hoverClass)
        .find('>ul')
        .css('visibility','hidden');

setTimeout( temp, 1000 );

Instead, you need to pass a *function* to setTimeout:

setTimeout( function() {
    $(['li.',o.hoverClass].join(''),this)
        .add(this)
        .not(not)
        .removeClass(o.hoverClass)
        .find('>ul')
        .css('visibility','hidden');
}, 1000 );

-Mike

On Thu, Dec 17, 2009 at 6:47 AM, decola <decola...@googlemail.com> wrote:

> setTimeout($(['li.',o.hoverClass].join(''),this).add(this).not
> (not).removeClass(o.hoverClass).find('>ul').css
> ('visibility','hidden'), 1000);
>

Reply via email to