Se estiver a utilizar jQuery, Angular JS, ou JavaScript antigo e a obter o erro “Uncaught ReferenceError: $ não está definido” que significa que $ é uma variável ou um método que está a tentar utilizar antes de o declarar utilizando a palavra-chave var. Em jQuery, é um nome curto da função jQuery() e mais comummente utilizado em $(document).ready(function()). Se estiver a fazer algumas coisas jQuery quando o DOM é carregado e a obter este erro, significa que o seu navegador tem um problema ao carregar a biblioteca jQuery a partir da Internet ou do sistema de ficheiros local. este artigo, verá algumas das razões mais comuns para o erro “Uncaught ReferenceError: $ is not defined” e como resolvê-los, mas antes disso vamos aprender algumas noções básicas sobre o temido Uncaught ReferenceError: $ is not defined error.
E, se quiser aprender JavaScript Moderno ou nivelar as suas capacidades então sugiro que se inscreva no Curso Completo de JavaScript: Build Real Project de Jonas Scmedtmann sobre Udemy. É um dos melhores e mais fáceis cursos para aprender ES 6 e outras novas funcionalidades de Javascript.
Uma das razões comuns para tal erro é começar directamente com jQuery sem conhecer os fundamentos do JavaScript. Tenho visto muitos programadores web que vêm de Java, C#, HTML, e fundo Python começarem a usar jQuery sem saberem muito sobre JavaScript.
Se por acaso trabalhar no mesmo cenário, sugiro vivamente que leia pelo menos um dos bons livros de JavaScript para principiantes, por exemplo, Head First JavaScript. Lembre-se sempre de que jQuery é uma biblioteca construída em JavaScript, uma vez que saiba JavaScript, é muito mais fácil resolver qualquer erro jQuery.
Uncaught ReferenceError: X não está definido
Desde que o JavaScript executa dentro do browser, o seu browser como Firefox, Chrome, Edge ou Internet Explorer atira este erro quando utiliza uma variável que não está definida, por exemplo, o código seguinte atira este erro, mas assim que declarar a variável utilizando a palavra-chave var, o erro desaparece:
data; // ReferenceError: os dados não estão definidosvar data;data; // Acabaram-se os erros
Simplesmente, se aceder a um método antes de o declarar, obterá este erro como se mostra abaixo:
process(); // ReferenceError : processo não é definidoprocess = function(){};process(); // Sem erros
br> Agora que aprendeu quando é que o browser lança o Uncaught ReferenceError: $ não está definido, é altura de olhar para algumas razões comuns para este erro ocorrer enquanto se utiliza jQuery, AngularJS ou outra biblioteca JavaScript que utiliza $ como atalho.
1) Uma das razões mais comuns de “ReferenceError: $ não está definido” na aplicação baseada em jQuery é que o plugin jQuery está incluído antes do ficheiro jQuery. Como o jQuery plugin usa $, lança “ReferenceError: $ não está definido” se não encontrar, o que é lógico porque jQuery não foi carregado até então.
<script src="/lib/jquery.plugin.js"></script><script src="/lib/jquery.plugin.min.js"></script>
br>Solução: Incluir o ficheiro jquery.js antes de qualquer ficheiro jQuery plugin.
<script src="/lib/jquery.min.js"></script><script src="/lib/jquery.plugin.js"></script>
2) A segunda razão mais comum para obter “ReferenceError: $ não está definido” em jQuery é devido ao caminho incorrecto, ou é um erro de digitação ou o ficheiro jQuery é movido para outro local, o navegador não é capaz de carregar o ficheiro jQuery.
Uma solução deste problema é simplesmente corrigir o caminho para a biblioteca jQuery. Se estiver a descarregar jQuery a partir do CDN então também pode utilizar o ficheiro jQuery alojado no Google, que está quase sempre disponível.
3) Outra razão bizarra mas comum de “ReferenceError: $ is not defined” em jQuery” é que pode estar a trabalhar offline mas a carregar jQuery a partir da Internet. É um dos erros bobos que cada web
developer comete, de vez em quando. A solução é simples, ou ligar-se à Internet ou utilizar uma cópia local da biblioteca jQuery, como mostrado abaixo:
<script src="/js/jquery.min.js"></script>
br>