Site icon Tosolini.info

jQuery: Uncaught TypeError: undefined is not a function

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 [textmarker color=”11FF00″] (document).ready [/textmarker] 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 [textmarker color=”gray”]  </body>  [/textmarker]. 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.

Exit mobile version