Tengo la biblioteca jQuery en el pie de página para seguir las buenas prácticas. Se coloca justo antes de la etiqueta </body> . Sin embargo, tengo un código clasificable de jQuery en el medio de la página dentro de un modal por alguna razón para ordenar las fotos. Mi código clasificable funcionaba de esta manera hace unos meses hasta octubre de 2021. Sin embargo, no busqué esa parte del módulo durante algunos meses y hoy no funciona. La consola está devolviendo este error:
Uncaught ReferenceError: $ is not defined
Ejemplo de mi código:
<head> <title>My First page</title> </head> <body> <div class="sortPhotos"> <ul id="sortable" class="reorder-gallery mt-3"></ul> <script> $(function() { $("#sortable").sortable({ // CODE GOES HERE }).disableSelection(); }); </script> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> </body>Los elementos del script jQuery generalmente se colocan en el elemento principal antes del cuerpo
marque aquí para ver exactamente dónde colocar la etiqueta del script jQuery
Es una buena práctica mantener el orden correcto cuando ejecuta cualquier proyecto antiguo de JavaScript porque el primer script se ejecuta antes:
<!DOCTYPE html> <html> <head> <title>My First page</title> </head> <body> <div class="sortPhotos"> <ul id="sortable" class="reorder-gallery mt-3"></ul> </div> <script src="js/jquery.min.js"></script> <script> $(function() { $("#sortable").sortable({ // CODE GOES HERE }).disableSelection(); }); </script> </body> </html>También verifique su ruta jquery.
El orden importa .
En su primer <script> , intenta llamar a la función $ y falla porque $ no está definido.
En su segundo <script> carga jQuery que define $ , pero para entonces ya es demasiado tarde.
Invierta el orden de sus elementos <script> .