WordPress understøtter JavaScript og jQuery-biblioteket fuldt ud. Den måde, som WordPress implementerer jQuery på, kan dog føre til fejl, når du forsøger at udføre funktioner. Et af de mest almindelige problemer er fejlen “Uncaught TypeError: $ is not a function”.

Fejlfinding af denne fejl er relativt enkel, hvis du forstår, hvad der forårsager den. “$”-aliaset er kernen i problemet, og jQuery og WordPress tilbyder flere måder at omgå det på, så du kan køre de funktioner, du har brug for.

I denne artikel vil vi forklare, hvad fejlen “Uncaught TypeError: $ is not a function” er, og hvad der forårsager den. Derefter vil vi også vise dig, hvordan du kan løse den. Lad os komme i gang!

Hvad er “Uncaught TypeError: $ Is Not a Function”-fejlen i WordPress?

Fejlen “Uncaught TypeError: $ is not a function” er en almindelig JavaScript-fejl, der opstår, når jQuery-biblioteket ikke er indlæst korrekt, eller der er en konflikt med andre scripts, der bruger ‘$’-symbolet.

I WordPress har denne fejl mere at gøre med, hvordan Content Management System (CMS) implementerer jQuery og mindre med problemer med indlæsning.

jQuery er et populært JavaScript-bibliotek. Det bruges i vid udstrækning i WordPress-temaer og plugins til håndtering af forskellige dynamiske elementer, animationer og AJAX-operationer:

jQuery-bibliotek hjemmeside
jQuery-bibliotek

I jQuery er “$”-symbolet et alias for jQuery-objektet, som er det primære objekt, du interagerer med, når du arbejder med biblioteket. Det gør koden kortere, mere læsevenlig og lettere at skrive.

“Uncaught TypeError: $ is not a function” er noget vanskelig at fejlfinde, fordi du ikke får vist en klar fejlmeddelelse. I modsætning til andre WordPress-fejl kan dette problem udløses af fejlkonfigurerede elementer på dit websted eller endda en 404-fejlside:

Screenshot af en 404 “page not found” fejl
404 “side ikke fundet” fejl

Den mest effektive måde at diagnosticere problemet på er ved at tage et kig på udviklerkonsollen eller ved at bruge WordPress debug-logfiler.

Hvad er hovedårsagerne til “Uncaught TypeError: $ Is Not a Function”-fejlen?

Fejlen “Uncaught TypeError: $ is not a function” har alt at gøre med jQuery. Du løber ind i dette problem, når en funktion, der indeholder symbolet “$”, udføres, mens webstedet indlæses.

Her er nogle potentielle årsager bag fejlen:

  1. JQuery-biblioteket er ikke korrekt indlæst. Hvis jQuery-biblioteket ikke er korrekt indlæst eller sat i kø, vil “$”-symbolet ikke blive genkendt som en gyldig funktion, og der vil opstå en fejl. Dette er typisk ikke et problem i WordPress, fordi CMS’et (Content Management System) indlæser biblioteket automatisk.
  2. Du bruger jQuery i noConflict-tilstand. Som standard kører WordPress jQuery i noConflict-tilstand. Det betyder, at det ikke genkender “$”-symbolet som et funktionsnavn. Hvis du vil bruge det, skal du sætte en omgåelse i gang.
  3. Plugin- eller tema-konflikter. Nogle plugins eller temaer kan have ukorrekt kodet JavaScript, der forstyrrer jQuerys korrekte funktion eller bruger “$”-symbolet på en måde, der skaber problemer med andre scripts.

For at opsummere, WordPress er ikke konfigureret til at genkende “$”-symbolet. Det betyder dog ikke, at du ikke kan køre jQuery-kode i CMS’et. Biblioteket er trods alt en del af WordPress. Det, du skal gøre, er at bruge en omgåelse for at undgå problemer med “$”-symbolet.

Sådan løser du fejlen “Uncaught TypeError: $ Is Not a Function” Error (2 metoder)

Før vi går i gang, er det vigtigt at bemærke, at jQuery allerede er en del af WordPress. Nogle vejledninger vil instruere dig i at sætte jQuery i kø, men biblioteket har været en del af Content Management System (CMS) i et stykke tid.

WordPress kører også jQuery i “noConflict”-tilstand out of the box. Det betyder, at det frigiver “$”-symbolet, så andre biblioteker kan bruge det. I stedet for at deaktivere “noConflict”-tilstanden skal du gribe dette problem an på følgende måde.

1. Brug “jQuery” i stedet for “$”

Hvis du støder på problemer, mens du bruger “$”-symbolet i funktioner, kan du bruge “jQuery” i stedet. For at give dig et eksempel er her, hvordan en grundlæggende jQuery-funktion, der bruger “$”, kan se ud:

$(function() {
  // Your code here will run once the DOM is ready
});

I dette tilfælde ville en hurtig løsning være at erstatte “$”-symbolet med jQuery. Koden ville så se således ud:

jQuery(function() {
  // This code will not trigger the error
});

Alternativt kan du “pakke” koden ind i et funktionsudtryk, der straks påberåbes, og som indeholder jQuery-symbolet. Det følgende eksempel ville ikke udløse fejlen “Uncaught TypeError: $ is not a function”, fordi det bruger jQuery-symbolet som en indpakning:

jQuery(function ($) {
    // You can use $ inside the wrapper
    console.log($('.primary-menu'));
});

Når du har foretaget disse ændringer i koden, kan du bruge din browsers udviklerkonsol eller WordPress debug-loggen for at se, om fejlen fortsætter. Hvis den gør, skal du muligvis mappe “jQuery” til et andet symbol for at omgå flere fejl.

2. Brug et brugerdefineret alias i jQuery

“$” er standardaliaset for jQuery-objektet. Men da WordPress kører jQuery i noConflict-tilstand, skal du muligvis mappe et alternativt alias for at undgå konflikter med andre biblioteker.

Denne proces er relativt enkel, da du kan mappe aliaset til et nyt symbol med en enkelt kodelinje:

vvar $j = jQuery;

Denne kode erstatter standardaliaset med “$j”, men det kan være hvad som helst andet, du ønsker. Nogle udviklere foretrækker denne fremgangsmåde frem for at skulle skrive hele “jQuery”-objektet, som vi viste i den foregående metode.

Hvis du ikke er sikker på, hvor du skal tilføje denne kode, kan du læse vores vejledning om, hvordan du tilføjer kode til headeren og footeren i WordPress. Husk på, at selv hvis du registrerer et nyt alias, kan du stadig bruge “jQuery” i stedet for dette symbol.

Oversigt

WordPress giver dig mulighed for at bruge jQuery på dit websted. Men hvis du vil undgå fejl som “Uncaught TypeError: $ is not a function”, skal du forstå, hvordan CMS’et implementerer biblioteket. WordPress bruger jQuerys “noConflict”-tilstand, hvilket betyder, at den ikke genkender “$”-symbolet.

Fejlen “Uncaught TypeError: $ is not a function” vises, når du forsøger at bruge en funktion, der kalder jQuery ved hjælp af “$”. For at omgå dette problem kan du skrive det fulde jQuery-objekt i stedet eller mappe aliaset til et andet symbol for at undgå konflikter.

Hvis du bruger Kinsta, kan du aktivere WordPress-fejlfindingstilstand i MyKinsta-dashboardet for at diagnosticere problemer. Desuden tilbyder alle vores abonnementer support af højeste kvalitet for at hjælpe dig med at fejlfinde eventuelle problemer, som du måtte støde på. Tjek vores planer ud!