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 № 1Primeiro, 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.
});