2011-05-21 14 views
5

Soy nuevo en jQuery y estoy atascado en algún extraño problema. Estoy usando los métodos de jQuery change y click. Están funcionando bien cuando se usan en mi archivo HTML en la etiqueta <script>.jQuery no funciona en JavaScript externo

igual:

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

Cuando he copiado la misma en el código JavaScript externo sin <script> e importados que en mi HTML no fue en absoluto trabajando.

¿Hay algún cambio que se necesite para usar jQuery en el código JavaScript externo?

PD: Algunas otras funciones no jQuery presentes en el mismo código JavaScript externo se llaman con éxito desde HTML.

+0

¿Cómo enlaza los js externos a la página? – Oded

+0

Usando '' – xyz

Respuesta

12

En primer lugar, usted no quiere un guión <> en un archivo JavaScript externo, si eso es lo que soy leyendo tu publicación

El truco con jQuery es que su código está configurado para ejecutarse inmediatamente.

desea ceñir la secuencia de comandos para que se cargue cuando el documento está listo, en algo así como:

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

Y desea asegurarse de que el archivo se carga después de jQuery (de lo contrario el $ global no se establecerá).


Adiciones:

Esto es lo que el código HTML debe ser similar:

<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> 

Esto es lo que el código JavaScript debe ser similar (tenga en cuenta que no hay etiqueta de script en el archivo JavaScript) :

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

En cuanto a su otra secuencia de comandos ... en cierto modo depende de lo que está haciendo. Lo más importante es no intentar vincular a los oyentes de eventos con objetos que aún no existen, por lo que usamos document.ready.

+0

Sí, quiero eliminar la etiqueta '

3

¿Se aseguró de que jquery esté definido antes de su propio código jquery?

También debe asegurarse de que el DOM está listo cuando se trata de jQuery:

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

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

Acabo de copiar el mismo código que está presente en mi archivo HTML en js.s externos. Y puede decirme cómo definir jquery en js externo? – xyz

+0

@Ajinkya u no tiene que definir en JS externo, sino simplemente vincular jquery. *. Js a su HTML. se fusionará automáticamente. –

+0

No lo defina en su JS externo, ponga la etiqueta

  • 11. oyente jQuery clic no funciona
  • 12. jQuery UI redimensionable no funciona en absoluto
  • 13. jquery noConflict no funciona en IE8 solo
  • 14. addAttr no funciona en jquery?
  • 15. Javascript window.open no funciona
  • 16. JavaScript getElementByID() no funciona
  • 17. Javascript `window.resizeTo` no funciona
  • 18. JavaScript getElementByName no funciona
  • 19. JavaScript innerHTML no funciona
  • 20. Javascript setInterval no funciona
  • 21. JQuery event.stopPropagation() no funciona
  • 22. jQuery delay no funciona
  • 23. jquery documento listo en script externo
  • 24. jQuery val() no funciona
  • 25. jQuery addClass no funciona
  • 26. jQuery Eliminar() no funciona
  • 27. Jquery .show() no funciona en firefox
  • 28. jquery e.target.hasClass no funciona
  • 29. JQuery Live() no funciona
  • 30. jQuery clic en el enlace no funciona