I wanted to share my experience with this problem:
with Firefox I experienced the same error of: "$ is not defined" and I found out that it was caused by missing the attribute "type='text/javascript'" when including the script in the header.
<script src="/js/jquery-1.11.1.min.js" type="text/javascript"></script>
Another addition: be careful about your connection type (secure or not) when including jQuery from external sources by using double backslashes (//) when including the file:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript"></script>
so as to match your connection security otherwise you might face certificate warnings if your connection is secure and the source of jQuery is not, or vice versa.