Extensão do Chrome "$ não está definido" erro

Estou recebendo um erro "$ não está definido" quando estou trabalhando na extensão do meu Chrome.

Este é o meu arquivo de manifesto:

   {
      "name": "X",
      "description": "Snip this page",
      "version": "2.0",
      "permissions": [
        "activeTab"
      ],
      "background": {
        "scripts": ["background.js"],
        "persistent": false
      },
      "content_scripts":[{
        "matches" : ["<all_urls>"],
        "js": ["jquery-2.0.2.js","jquery.Jcrop.js"],
        "css": ["jquery.Jcrop.min.css"]
      }],
      "browser_action": {
        "default_title": "Snip this page"
      },
      "manifest_version": 2
    }

Este é o meu arquivo background.js:

chrome.browserAction.onClicked.addListener(function(tab){
  // No tabs or host permissions needed!
  chrome.tabs.executeScript({
    file: 'content.js'
  });
});

Por fim, o arquivo em que o erro é acionado: content.js

console.log('1');
var jcropapi, boundx, boundy;
$('body').attr('id', 'target');
$(document).ready(function(){
    $('target').Jcrop();
    console.log('4');
    document.onkeydown = function(){
        if(window.event.keyCode==13){
            console.log('enter');
        }
    };
});

Pelo que entendi, isso acontece porque o JQuery não é carregado. No entanto, estou carregando-o corretamente no manifesto, e o jquery.js também é o primeiro arquivo que é chamado no script de conteúdo do manifesto. Por favor me ajude na depuração. Obrigado!

questionAnswers(3)

yourAnswerToTheQuestion