JavaScript Runtime-fout: ‘$’ is undefined

Zo klassiek probleem, maar een vreselijke tijd hebben bij het vinden van de daadwerkelijke oorzaak. Typisch wanneer ik deze fout zie, is het omdat het jQuery-referentie na code nodig is, of terug jQuery-link of jQuery conflicten, enz. Tot nu toe lijkt geen van die het geval is. Helaas heeft het op zoek naar de oplossing voor dit probleem me laten plaatsen na de post van dergelijke gevallen. Ik weet zeker dat mijn probleem hier net zo eenvoudig is, maar meer dan een uur jacht, nog steeds geen geluk …

EDIT: Aanvullende informatie …
Het oplossingsbestand (dat ik meerdere keren heb opnieuw gemaakt om dit uit te zoeken. Is een JavaScript Windows Store lege app-sjabloon en ik doe dit in Visual Studio. De enige referenties-bestanden zijn Windows-bibliotheek voor JavaScript 1.0, ik heb geprobeerd het verwijderen te verwijderen dit om te testen ook.

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>HTML5 Canvas Template</title>
        <style>
            /* styles here */
        </style>
    </head>
    <body>
        <canvas id="myCanvas" width="500" height="500">
            <p>Canvas not supported.</p>
        </canvas>
        <script type="text/javascript" src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                var canvas = $("#myCanvas").get(0);
                var context = canvas.getContext("2d");
                function renderContent()
                {
                    // we'll do our drawing here...
                }
                renderContent();
            });
        </script>
</body>
</html>

Antwoord 1, Autoriteit 100%

Zij stelt dat JQueryverwezen URL niet correct is

Probeer dit:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

Antwoord 2, Autoriteit 13%

Ik heb alles geprobeerd hierboven vermeld en niets lijkt te werken totdat ik deze string

<script src="../scripts/jquery-2.2.3.min.js" type="text/javascript"></script>

In het hoofdgedeelte van het HTML-bestand. Dus hier is hoe het eruit ziet:

<!DOCTYPE html>
<html>
<head>
    <!-- jQuery Reference -->
    <script src="../scripts/jquery-2.2.3.min.js" type="text/javascript"></script>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    <title>some title</title>
</head>
<body>
...

en het JS-bestand bevindt zich op een niveau hieronder in de map ‘Scripts’.
Ten slotte is de fout verdwenen en wat een opluchting!


Antwoord 3, Autoriteit 7%

In mijn geval was het probleem dat ik mijn pagina over HTTPS gaf, maar ik probeerde het jQuery-bestand op HTTP te vragen, dat om veiligheidsredenen door vele browsers wordt geblokkeerd.

Mijn fix was om dit te wijzigen …

<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>

… naar deze …

<script src="//code.jquery.com/jquery-1.9.1.min.js"></script>

Hierdoor downloadt de browser JQuery met hetzelfde protocol (http of https) als de pagina die wordt weergegeven.


Antwoord 4, autoriteit 7%

Sommige van mijn klanten hadden dit probleem, omdat ze blijkbaar het laden van Javascript van sites van derden blokkeerden. Dus nu gebruik ik altijd de volgende code om jQuery op te nemen:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
window.jQuery || 
document.write('<script type="text/javascript" src="/js/jquery-1.9.1.min.js">\x3C/script>')
</script>

Dit zorgt ervoor dat, zelfs als mijn client het laden van het Javascript-bestand van het CDN-domein blokkeert, de client het bestand nog steeds downloadt van mijn eigen server, die niet wordt geblokkeerd door de browser.


Antwoord 5

Een andere variant, in mijn geval – ik was gedwongen om proxy te gebruiken. Dus – IE11–> Internetopties –> Verbindingen–>LANSettings-Proxy Server–> UseProxyServer– moet worden aangevinkt.
Controleer ook de beschikbaarheid van de jQuery-scriptbron, mijn bewerkte variant in VS2012 – -net als in het bovenste voorbeeld


Antwoord 6

Ik kreeg dezelfde foutcode:

(Fout: ‘generateText’ is niet gedefinieerd)

…op de code

var bodyText=["The....now."]

Ik ontdekte in mijn teksteditor (Notepad++), toen ik veel regels tekst typte in de direct boven de variabele bodyText, of ik niet op return carriageklikte (enter==>WordWrap staat uit) bleef maar typen zonder return carriageen de editor de tekst laten aanpassen het werkte?

Moet in de instellingen van Notepad++ staan??

Other episodes