setTimeout () et les paramètres de réglage

J'ai quelques jQuery code qui ressemble à ceci:

$('.mainNav2 > li').mouseleave(function(){
    var someNum = Math.random();
    $(this).attr('id', someNum);
    var t = setTimeout("HideMenu(someNum)", 200);
    $('li.clicked').mouseenter(function() {
        clearTimeout(t);
    });
});

function HideMenu(id) {
    $('#'+id).removeClass('clicked');
}

Dont le but est de cacher un mega menu sur la souris quitter, mais prend également en compte accidentelle de la souris feuilles, à l'aide d'un 300 millisecondes setTimeout. Si l'utilisateur amène le pointeur de la souris en arrière dans le li à moins de 300 millisecondes, le menu n'est pas caché, car clearTimout(t) est appelée.

Le problème, c'est quand l'utilisateur N'a l'intention de mouseout, la fonction dans le setTimout n'est pas appelée. Selon cette page: http://www.w3schools.com/js/js_timing.asp ma syntaxe est correcte, mais je ne peux faire le HideMenu une fonction appelée dans le setTimeout si je l'écris comme ceci:

var t = setTimeout(HideMenu, 300);

Pourquoi n'est-il pas de travail comme l'écrit, où je peux passer une variable dans la fonction en tant que paramètre?

source d'informationauteur Ben