jQuery: Uncaught TypeError: undefined is not a function

jQuery: Uncaught TypeError: undefined is not a function

di Aggiornato: 15 marzo 2018 0 commenti

Si tratta nella quasi totalità dei casi, di un errore procedurale, o meglio dove avete fisicamente messo lo script. Può capitare infatti che lo script, solitamente un  (document).ready  finisca per essere caricato prima di jQuery stesso. Può essere ad esempio quando jQuery viene richiamato da una libreria remota come quelle delle Hosted Library di Google. A maggior ragione se state caricando questi script all’interno di WordPress.

La soluzione è quella di caricare gli script nel footer, prima del tag di chiusura   </body>  . Se poi avete diverse librerie, o prevedete di utilizzarne in futuro, meglio se lo script che andrete a scrivere sia dichiarato all’utilizzo di jQuery.

Si veda l’esempio sottostante:

$(document).ready(function() {
//faccio qualcosa
});
//diventerà nella modalità senza conflitto in
jQuery.noConflict();
jQuery(document).ready(function($) {
//faccio qualcosa, ora posso utilizzare $ senza conflitti
});

Conclusioni.

Si tratta quindi di un piccolo trucco procedurale. Infatti dal punto di vista della sintassi scrivere nell’header è formalmente corretto, tuttavia il browser riporterà errore per i motivi sopra citati. Spostando verso il fondo della pagina inoltre si ottiene anche l’effetto di aumentare, dal punto di vista visivo, le prestazioni. Poiché i dati vengono processati dall’alto verso il basso non dovranno aspettare il caricamento del codice javaScript che solitamente è invisibile ad un primo impatto. Spesso sono degli effetti legati alla “esperienza utente” e sono fruibili nel momento in cui si inizia ad esplorare o utilizzare la pagina web.

Libri che ti consiglio

alcuni titoli che consiglio come manuali tecnici sull'argomento

Vuoi dire o aggiungere qualcosa?

sezione commenti aperta al pubblico

Non ci sono ancora commenti!

Puoi essere il primo a commentare.

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.