- Estou usando um site WordPress.
- Estou incluindo este script no cabeçalho.
Quando o script é carregado, recebo este erro:
TypeError: 'undefined' não é uma função (avaliando '$ (document)')
Não tenho idéia do que está causando ou do que isso significa.
No firebug, recebo o seguinte:
$ não é uma função
Net
guia do Firebug (verifique se o jQuery é realmente carregado).Respostas:
Wordpress usa jQuery no modo noConflict por padrão. Você precisa fazer referência a ela usando
jQuery
o nome da variável, não$
, por exemplo, useao invés de
Você pode facilmente agrupar isso em uma função de execução automática, para que
$
se refira ao jQuery novamente (e evite poluir também o espaço para nome global), por exemplofonte
jQuery(document)
vez de$(document)
onde quiser. Se você deseja usar$
, o script acima simplesmente cria uma função que recebe um argumento e$
depois o executajQuery
; em resumo, dentro da função,$
aponta para jQuery como seria de esperar.$(document).ready(function() { // code });
no lugar do seu$(document);
... que funcionou como um encanto.Use jQuery's
noConflict
. Ele fez maravilhas para mimOu seja, supondo que você incluiu o jQuery no seu HTML
fonte
Usa isto:
fonte
Experimente este trecho:
Funcionou para mim, talvez também o ajude.
fonte
Eu tive esse problema apenas no Chrome.
Eu tentei adicionar
pouco antes de ligar
Funcionou.
Muito obrigado
fonte
Verifique também a inclusão do jQuery, seguido por alguns componentes / outras bibliotecas (como a jQuery UI) e depois inclua novamente o jQuery novamente - isso redefinirá o jQuery e eliminará os auxiliares do componente (como .datepicker) da instância.
fonte
Coloque o seu código js dentro do fechamento acima, ele deve resolver o problema.
fonte
Eu usaria isso
fonte
Eu também enfrentei esses problemas muitas vezes na operadora de desenvolvimento da Web. Na verdade, não é um conflito de JS. Quando carregamos o site html no navegador, não enfrentamos esse erro, mas quando carregamos esse tipo de site através do host local, enfrentamos esse problema. Isso é por causa do localhost. Quando carregamos scripts através do host local, ele varre o script e renderiza a saída. Mas quando não usamos o host local. Basta escanear a saída. Por exemplo, quando escrevemos código php ao lado do host local e rodamos sem host, obtemos erro. Mas se o código estiver correto e for executado no host, obtemos saída real e, quando usamos o elemento inspecionado, obtemos o código de saída no formato HTMl, mas não no formato PHP, isso ocorre devido à renderização do código.
Isso está causando erro. Portanto, para corrigir esse erro de código jquery, uma das soluções pode estar usando esse método.
O que esse código faz é registrar '$' como a variável para a função aplicando jquery. Senão, por padrão, o arquivo .js é lido apenas como javascript.
fonte
Também encontrei esse problema ao incluir o jQuery no cabeçalho da minha página, sem perceber que o host já o incluía na página automaticamente. Então carregue sua página ao vivo e verifique a fonte para ver se o jQuery está sendo vinculado.
fonte
Duas coisas:
fonte
embrulhe todo o script entre este ...
Muitas bibliotecas JavaScript usam $ como uma função ou nome de variável, assim como o jQuery. No caso do jQuery, $ é apenas um alias para o jQuery, portanto, toda a funcionalidade está disponível sem o uso de $. Se você precisar usar outra biblioteca JavaScript ao lado do jQuery, retorne o controle $ para a outra biblioteca com uma chamada para $ .noConflict () . Referências antigas de $ são salvas durante a inicialização do jQuery; noConflict () simplesmente os restaura.
fonte
Você pode usar jQuery e $ no snippet abaixo. funcionou para mim
fonte
Você pode passar $ em function ()
ou você pode substituir
$(document);
por estejQuery(document);
ou você pode usar
jQuery.noConflict()
fonte