Javascript verlinken funtioniert nicht?
Hallo,
Ich habe das seltsame Problem, dass ich eine Javascript Datei nicht verlinken kann. Bzw. dass der Inhalt auf der Javascript Datei nicht ausgeführt wird.
So habe ich die Datei im <head> Tag verlinkt:
<script type="text/javascript" src="assets/js/cookie.js"></script>
Der Inhalt auf der Javascript Datei ist folgender:
"use strict"
$("#akzeptieren").click(function() {
$(".cookie").hide();
})
Wenn ich den Javascript Code allerdings in der selben HTML Datei ausführe mit
<script>
$("#akzeptieren").click(function() {
$(".cookie").hide();
})
</script>
funktioniert er.
Woran kann das liegen? Ich habe schließlich weitere Javascript Dateien verlinkt die alle funktionieren. Auch habe ich die JQuery Datei im <head> Tag verlinkt. Ich benutze den aktuellen Chrome Browser. Mit Firefox habe ich es auch schon probiert. Dort geht es auch nicht.
Als Editior verwende ich Visual-Studio-Code.
Ich bin gerade ziemlich verwirrt. Habe ich irgendwo einen Fehler gemacht?
3 Antworten
Deine Seite liegt sicherlich in einem anderen Verzeichnis als DocRoot und deshalb wird der Pfad der Javascript-Datei nicht gefunden. Schau in der Browser-Console nach, dort kommt sicherlich ein Fehler, dass die Datei nicht gefunden wurde.
Dein Pfad sollte vermutlich eher so sein:
/assets/js/cookie.js
Dann bezieht sich /assets immer auf den DocRoot, ohne führenden Slash dagegen immer relativ zum aktuellen Pfad. Bei dieser URL:
/mein/tolles/document.html
… wäre das dann:
/mein/tolles/assets/js/cookie.js
… und das willst du ja nicht.
PS: Bitte formatieren hier Code immer als Quelltext, da er sonst nicht leserlich ist.
Na ja, wie du siehst, wird das Script nicht gefunden. Liegt es denn überhaupt in /assets/js/ drin?
Wie ich schon sagte, musst du einen absoluten Pfad mit Slash / am Anfang angeben, aber natürlich muss auch der Rest von Pfad stimmen. Beides kannst nur du überprüfen.
Das ist ein Cookie-Banner, der mit Javascript verschwinden soll, wenn man auf akzeptieren klickt.
<div class="cookie">
<h2 id="cookie-überschrift">Diese Website verwendet Cookies</h2>
<p id="cookie-text">Diese Website verwendet Cookies und Google Analytics für die Analyse und Statistik. Cookies helfen uns, die Benutzerfreundlichkeit unserer Website zu verbessern. Wenn du auf "Akzeptieren" klickst, stimmst du den genannten Bedingungen zu. Weitere Inforamtionen findest du in unserer <a href="file:///C:/Users/Kai/Documents/Vorlage%20Website/Datenschutzerkl%C3%A4rung.html">Datenschutzerklärung</a>.</p>
<input id="akzeptieren" type="submit" value="Akzeptieren">
<input id="ablehnen" type="submit" value="Weitere Einstellungen">
</div>
Macht sinn. Allerdings funktioniert es dann immer noch nicht. Die anderen Dateien sind ja auch ohne / am Anfang verlinkt und funktionieren.
Vielleicht habe ich ja auch ein Fehler beim Objekt selbst gemacht. Ich schicke dir mal die wichtigsten Sachen.
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<title>Website</title>
<meta name="description" content="Thoughts, reviews and ideas since 1999."/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link rel="shortcut icon" href="#">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="/assets/js/cookie.js"></script>
<link rel="stylesheet" type="text/css" href="assets/css/screen.css"/>
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:400,300italic,300,400italic,700,700italic|Playfair+Display:400,700,400italic,700italic"/>
</head>
Ok, steht ein Fehler in der Konsole (F12 Reiter Console)?
Ist dein Code in einer document ready fiunction?
Vielen Dank für deine Antwort.
In meiner Konsole wird kein Fehler angezeigt. Zudem befindet sich mein Code auch in keiner document ready function.
Bindest du jQuery über oder unter <script type="text/javascript" src="assets/js/cookie.js"></script> ein?
Ich verlinke jQuery genau über der verlinkten Javascript Datei:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="assets/js/cookie.js"></script>
Zur Console. Es kommt diese Fehlermeldung. Was kann ich da jetzt machen?