I personally like Rebecca Murphey's jQuery Fundamentals.
Other great (free) online resources:
I had a friend recently ask me whether it was better to learn unadulterated JavaScript before beginning to use jQuery. After some thought, I decided it wasn't entirely necessary. jQuery just enhances javascript and makes it easier to use, and it'll always be around, so why get into document.getElementById()
when you'll always have access to jQuery's selector engine? I suppose it's akin to learning math via a calculator, but if you're just looking to write some awesome webapps, you needn't be a JavaScript-amatician.
Also note: JavaScript is sort of a vague term. According to StackOverflow's wiki:
JavaScript is the common name for ECMAScript, and the name of Mozilla's implementation of ECMAScript. ECMAScript was developed as a standardization of a common subset of features of Mozilla's JavaScript and similar languages.
In layman's terms, this means that JavaScript is a dialect of ECMAScript. This is sort of convolutes things. Basically, Mozilla developed the JavaScript language, and Microsoft developed JScript to compete (and for compatibility issues). The two were reconciled into the ECMAScript
standard. So, a body of people publish a standard, then it's up to the developers of the JavaScript Engines to implement them to standard.
Hence, no JavaScript engine is the same (damn you, IE). This is also why you will be hard-pressed to find a definitive JavaScript reference. Mozilla's Developer Network has come up with about as complete a reference as you can find.