Lose the red $. If you put it there as function parameter without actually calling the function with any parameter, it will be null instead of the global jQuery object.
Sorry, that's not it; I just remembered that .ready() automatically passes the global jQuery object to the function you provide. You can get rid of it, though, since it's confusing and you're not using .noConflict() anyway.
It would be easier to see what the problem is if you showed this on a live site.