Make sure you have a semicolon at the beginning of every JavaScript file. Bizarre, I know, but here's why:
You might have something like this in one file:
function someFunc() {
...
}
followed by something like this in the next file (this is how many jQuery plugins look):
(function($) {
...
})(jQuery);
That gets compressed into this:
function someFunc(){ }( function($){...} )(jQuery);
Which essentially calls someFunc
with function($){...}
as it's argument. Then, it will take whatever is returned, and assume it is a function and call it with jQuery
as the argument.
This is why most jQuery plugins start with ;(function($){
.
Putting a semicolon at the beginning of every file (or the end, but make it consistent) will make your scripts look like:
;function someFunc(){ }; (function($){...})(jQuery);
That way, your scripts will be interpreted as intended.