/ / jQuery não funciona em JavaScript externo - javascript, jquery, html

jQuery não funciona em JavaScript externo - javascript, jquery, html

Eu sou novo no jQuery e estou preso em algum problema estranho. Estou usando o jQuery "s change e click métodos. Eles estão funcionando bem quando usado no meu arquivo HTML no <script> tag.

Gostar:

<script>
$("select,input").change(function ()
{
// My code and some alerts
});
</script>

Quando copiei o mesmo em código JavaScript externo sem <script> e importou que no meu HTML não estava funcionando.

Há alguma alteração necessária para usar o jQuery no código JavaScript externo?

PS: Algumas outras funções não-jQuery presentes no mesmo código JavaScript externo são chamadas com sucesso do HTML.

Respostas:

12 para resposta № 1

Primeiro, você não quer uma tag <script> em um arquivo JavaScript externo, se é assim que eu estou lendo sua postagem.

O truque com jQuery é que seu código está configurado para executar imediatamente.

Você quer envolver seu script para que ele carregue quando o documento estiver pronto, algo como:

$(document).ready(function(){
$("select,input").change(function ()
{
// My code and some alerts
})
});

E Você quer ter certeza de que seu arquivo é carregado após jQuery (caso contrário, o $ global não será definido).


Aditivos:

Aqui está o que o seu HTML deve ser:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript" src="jscript/myExternalJs.js"></script>

Aqui está como deve ser o seu código JavaScript (note que não há tag de script dentro do arquivo JavaScript):

$(document).ready(function(){
$("select,input").change(function ()
{
// My code and some alerts
})
// Other event handlers.
});

No que diz respeito ao seu outro script ... depende do que você está fazendo. O mais importante é não ligar os ouvintes de eventos a objetos que ainda não existem, e é por isso que usamos document.ready.


3 para resposta № 2

Você se certificou de que jquery é definido antes de seu próprio código de jquery?

Você também deve certificar-se de que o DOM esteja pronto ao lidar com o jquery:

$(document).ready(function() {
$("select,input").change(function() {
// my code and some alerts
});

// more code here if needed, etc.
});