Use yield WaitForSeconds to delay mouseover on a gameObject? (JS)

I have a main menu which has a 3 second transition in, which looks cool and all, but I ran into a problem - I can mouseover the objects during their transition in, which I don’t want to be able to do. So I used a yield WaitForSeconds(3) before the function OnMouseOver, thinking that would solve it:

    iTween.MoveFrom(gameObject, {"y":5, "time":3, "EaseType":"EaseOutSine"});
iTween.RotateFrom(gameObject, {"y":-5, "time":5, "EaseType":"easeInOutQuad", "loopType":"pingPong"});
//wait for transition to finish to avoid glitches with mouseover
yield WaitForSeconds (3);
function OnMouseOver ()
{
	iTween.MoveTo(gameObject, {"z":-.25,"time":1});
	if(Input.GetMouseButtonDown(0))
	{
		Application.LoadLevel("Credits");
	}
}
function OnMouseExit ()
{
	iTween.MoveTo(gameObject, {"z":0, "time":1});
}

But it didn’t appear to create any sort of delay, and the problem still existed. Is there another way to force this delay before a function without putting a delay within the function itself?

Forget the yield. Check how long the game has been running instead.

var delayTime : float = 3.0;
function Start()
{
    delayTime += Time.time;
}
function OnMouseOver()
{
    if( Time.time < delayTime )
        return; //exit the function if it's 3 seconds since this script started
}