Getting jquery to work with custom theme

As per comments, this kind of error is caused by the fact that WordPress loads jquery in noconflict mode. The most common workaround is to wrap all functions in your script file:

jQuery(document).ready(function($) {  ... scripts ... }

Another, more risky option is to switch off noconflict mode by starting the script file with this:

$ = jQuery.noConflict();