JQuery – $ não está definido

Eu tenho um simples evento de clique jquery

 $(function() { $('#post').click(function() { alert("test"); }); });  

e uma referência de jquery definida no site.master

 <script src="" type="text/javascript"> 

Verifiquei se o script está sendo resolvido corretamente, posso ver a marcação e ver o script diretamente no firebug, portanto, devo estar sendo encontrado. No entanto, ainda estou recebendo:

$ não está definido

e nenhum dos trabalhos de jquery. Eu também tentei várias variações deste como $ (documento) .ready e jQuery etc.

É um aplicativo MVC 2 no .net 3.5, tenho certeza que estou sendo muito densa, em todos os lugares no google diz para verificar se o arquivo está referenciado corretamente, o que eu verifiquei e verifiquei novamente, por favor avise! : /

Esse erro só pode ser causado por uma das três coisas:

  1. Seu arquivo JavaScript não está sendo adequadamente carregado em sua página
  2. Você tem uma versão falha do jQuery. Isso pode acontecer porque alguém editou o arquivo principal, ou um plugin pode ter sobrescrito a variável $.
  3. Você tem o JavaScript em execução antes que a página seja totalmente carregada e, como tal, antes que o jQuery seja totalmente carregado.

Você deve verificar o painel da rede do Firebug para ver se o arquivo está sendo carregado corretamente. Caso contrário, será destacado em vermelho e dirá “404” ao lado. Se o arquivo estiver sendo carregado corretamente, isso significa que o problema é o número 2.

Certifique-se de que todo o código jQuery javascript esteja sendo executado dentro de um bloco de código, como:

 $(document).ready(function () { //your code here }); 

Isso garantirá que seu código esteja sendo carregado após o jQuery ter sido inicializado.

Uma última coisa a verificar é certificar-se de que você não está carregando nenhum plug-in antes de carregar o jQuery. Os plug-ins estendem o object “$”, portanto, se você carregar um plug-in antes de carregar o núcleo do jQuery, receberá o erro descrito.

Nota: Se você estiver carregando um código que não requer que o jQuery seja executado, ele não precisa ser colocado dentro do manipulador pronto do jQuery. Esse código pode ser separado usando document.readyState .

Pode ser que você tenha sua tag de script chamada antes do script jquery ser chamado.

   

Isso resulta em $ não definido

Coloque o jquery.js antes da tag do script e ele funcionará;) assim:

   

Primeiro você precisa ter certeza de que o script jQuery está carregado. Isso pode ser de um CDN ou local no seu site. Se você não carregar isto primeiro antes de tentar usar o jQuery, ele dirá que o jQuery não está definido.

  

Isso pode ser no HEAD ou no rodapé da página, apenas certifique-se de carregá-lo antes de tentar chamar qualquer outro material do jQuery.

Então você precisa usar uma das duas soluções abaixo

 (function($){ // your standard jquery code goes here with $ prefix // best used inside a page with inline code, // or outside the document ready, enter code here })(jQuery); 

ou

 jQuery(document).ready(function($){ // standard on load code goes here with $ prefix // note: the $ is setup inside the anonymous function of the ready command }); 

por favor esteja ciente de que muitas vezes $ (document) .ready (function () {// code here}); não vai funcionar, especialmente verdade no wordpress.

Se a chamada do plug-in do jQuery estiver ao lado do , e seu script for carregado antes disso, você deverá fazer seu código ser executado após o evento window.onload , desta forma:

 window.onload = function() { //YOUR JQUERY CODE } 

`

Assim, seu código será executado somente após o carregamento da janela, quando todos os resources tiverem sido carregados. Nesse ponto, o jQuery ( $ ) será definido.

Se você usar isso:

 $(document).ready(function () { //YOUR JQUERY CODE }); 

`

o $ ainda não está definido neste momento, porque é chamado antes que o jQuery seja carregado e seu script falhará na primeira linha do console.

Eu apenas fiz a mesma coisa e descobri que tinha um monte de

 type="text/javacsript" 

Então, eles estavam carregando, mas não há mais indícios de por que não estava funcionando. Escusado será dizer que a ortografia adequada o corrigiu.

Use uma seção de scripts na visualização e no layout mestre.

Coloque todos os seus scripts definidos em sua visão dentro de uma seção Scripts da visão. Dessa forma, você pode fazer com que o layout mestre carregue isso depois que todos os outros scripts tiverem sido carregados. Essa é a configuração padrão ao iniciar um novo projeto da web do MVC5. Não tenho certeza sobre versões anteriores.

Visualizações / Foo / MyView.cshtml:

 // The rest of your view code above here. @section Scripts { // Either render the bundle defined with same name in BundleConfig.cs... @Scripts.Render("~/bundles/myCustomBundle") // ...or hard code the HTML.   } 

Visualizações / Compartilhadas / _Layout.cshtml

    @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/bootstrap") @RenderSection("scripts", required: false)   

Observe como a seção de scripts é processada por último no arquivo de layout principal.

Certifique-se de que você realmente carrega jquery isso não é jquery – é o ui!

   

Esta é uma fonte de script correta para o jquery:

   

Você está usando outras bibliotecas JavaScript? Em caso afirmativo, você provavelmente precisará usar o jQuery no modo de compatibilidade:

http://docs.jquery.com/Using_jQuery_with_Other_Libraries

Como dito acima, isso acontece devido ao conflito de $ variável.

Eu resolvi esse problema reservando uma variável secundária para jQuery sem conflito.

 var $j = jQuery.noConflict(); 

e depois usá-lo em qualquer lugar

 $j( "div" ).hide(); 

mais detalhes podem ser encontrados aqui

Recebi a mesma mensagem de erro quando escrevi incorretamente a referência do jQuery e, em vez de type="text/javascript" , digitei “… javascirpt”. 😉

Parece que o jQuery não está sendo carregado corretamente. Qual fonte / versão você está usando?

Como alternativa, pode ser uma colisão de namespace, portanto, tente usar o jQuery explicitamente em vez de usar $ . Se isso funcionar, você pode usar o noConflict para garantir que o outro código que esteja usando $ não seja quebrado.

Depois de alguns testes encontrei uma solução rápida, você pode adicionar no topo da sua página de índice:

  

funciona muito bem 🙂

Isso significa que sua biblioteca jQuery ainda não foi carregada.

Você pode mover seu código depois de puxar a biblioteca jQuery.

ou você pode usar algo assim

 window.onload = function(){ // Your code here }; 

Eu uso o Url.Content e nunca tenho um problema.

  

Na solução, é mencionado – “Uma última coisa a verificar é certificar-se de que você não está carregando nenhum plug-in antes de carregar o jQuery. Os plug-ins estendem o object” $ “, portanto, se você carregar um plug-in antes de carregar o núcleo do jQuery, vai pegar o erro que você descreveu. ”

Por evitar isso –

Muitas bibliotecas JavaScript usam $ como um nome de function ou variável, assim como o jQuery. No caso do jQuery, $ é apenas um alias para jQuery, portanto, toda a funcionalidade está disponível sem usar $. Se precisarmos usar outra biblioteca JavaScript ao lado do jQuery, podemos retornar o controle de $ de volta para a outra biblioteca com uma chamada para $ .noConflict ():

Eu tive o mesmo problema e foi porque minha referência ao jQuery.js não estava na tag. Depois que eu mudei isso, tudo começou a funcionar.

Anthony

Esse erro significa que o jQuery ainda não foi carregado na página. Usar $(document).ready(...) ou qualquer outra variante não será bom, pois $ é a function jQuery.

Usando o window.onload deve funcionar aqui. Note que apenas uma function pode ser atribuída a window.onload . Para evitar perder a lógica onload original, você pode decorar a function original da seguinte forma:

 originalOnload = window.onload; window.onload = function() { if (originalOnload) { originalOnload(); } // YOUR JQUERY }; 

Isso executará a function que foi originalmente atribuída a window.onload e executará // YOUR JQUERY .

Veja https://en.wikipedia.org/wiki/Decorator_pattern para mais detalhes sobre o padrão decorador.

Eu tive esse problema uma vez sem motivo aparente. Foi acontecendo localmente enquanto eu estava correndo através do servidor de desenvolvimento do aspnet. Ele estava funcionando e eu reverti tudo para um estado em que ele estava trabalhando anteriormente e ainda não funcionou. Eu olhei no depurador de cromo e o jquery-1.7.1.min.js tinha carregado sem problemas. Foi tudo muito confuso. Eu ainda não sei qual era o problema, mas fechando o navegador, fechando o servidor de desenvolvimento e tentando novamente resolvê-lo.

Basta colocar o jquery url no topo do seu código jquery

como isso–

   

Acontece que meu problema era um tanto estúpido – eu tinha colocado invés de

Nós temos o mesmo problema …. mas acidentalmente eu verifiquei as propriedades da pasta e definir algo …

Você tem que verificar as propriedades de cada pasta que você está acessando ..

  1. clique direito na pasta
  2. guia ‘permissions’
  3. definir o access à pasta: OWNER: criar e excluir arquivos GROUP: acessar arquivos OUTROS: arquivos de access

Espero que esta seja a solução ……

Ao usar o jQuery no asp.net, se você estiver usando uma página mestra e estiver carregando o arquivo de origem jquery, certifique-se de ter o header contentplaceholder após todas as referências do script jquery.

Eu tive um problema em que qualquer página que usasse aquela página mestra retornaria ‘$ não está definida’ simplesmente porque a ordem incorreta estava fazendo com que o código do lado do cliente fosse executado antes que o object jquery fosse criado. Portanto, verifique se você tem:

     

Dessa forma, o código será executado em ordem e você poderá executar o código jQuery nas páginas filhas.

No meu caso, eu estava apontando para o JQuery hospedado pelo Google. Foi incluído corretamente, mas eu estava em uma página HTTPS e chamei via HTTP. Depois que resolvi o problema (ou permiti conteúdo inseguro), ele disparou.

Depois de tentar tudo aqui sem nenhum resultado, resolvi o problema simplesmente movendo a tag src do script do corpo para a cabeça

Você acabou de colocar a biblioteca jQuery na seção head do html 🙂

     

Eu estava tendo esse mesmo problema e não conseguia descobrir o que estava causando isso. Recentemente converti meus arquivos HTML do japonês para UTF-8, mas não fiz nada com os arquivos de script. De alguma forma, o jquery-1.10.2.min.js foi corrompido nesse processo (ainda não tenho idéia de como). Substituindo jquery-1.10.2.min.js com o original corrigido.

parece que se você localizar seus arquivos jquery.js na mesma pasta ou em algumas subpastas onde seu arquivo html está, o problema do Firebug será resolvido. por exemplo, se o seu html está em C: / folder1 /, então seus arquivos js devem estar em algum lugar em C: / folder1 / (ou C: / folder1 / folder2 etc) e endereçados adequadamente no documento html. espero que isto ajude.

Isso funcionou para mim (projeto MVC5):

  

você acabou de adicionar no início da sua página

   

e verifique o seu link src em qualquer barra de endereço do navegador, se você está recebendo algum código, então isso irá funcionar para você. Até parece

Eu tenho o mesmo problema e nenhum caso me resolve o problema. A única coisa que funciona para mim, é colocada no arquivo Site.master, a próxima:

   

Com src = “< % = ResolveUrl (" ") ... o carregamento de jQuery nas páginas de conteúdo está correto.