You are setting your script to be added at the wp_head action. jQuery, along with most other scripts, are loaded as part of the wp_enqueue_scripts action. Care to guess which of those comes first? 😉
Edit This is actually not true. jQuery is loaded as part of wp_default_scripts which does take place before wp_head
I have found this list of the WordPress hook firing sequence to be helpful. It shows that wp_head comes right before wp_enqueue_scripts. This means when your script is running jQuery has not been loaded yet.
Just change your line in your init function:
add_action('wp_enqueue_scripts', array( $this, 'js_scripts' ));
I would also recommend putting the script in an external file and then enqueue-ing it. That way, you can actually specify dependencies (like jQuery) as well as other options..