[gelöst] JavaScript/jQuery funktioniert nicht
am 08.11.2013 - 17:58 Uhr in
Hallo zusammen,
Ich versuche aktuell, ein paar JavaScript/jQuery-Skripte auf meiner Seite einzubinden. Allerdings funktioniert das nicht richtig.
Folgende Probleme treten auf:
Über die *.info-Datei eingebundene JavaScript-Dateien scripts[] = js/script.js werden zwar in den HTML-Quellcode eingebunden, jedoch nicht ausgeführt, nicht mal die bereits vorgegebene script.js Datei. Alle Dateien, mit denen ich es versucht habe, haben den vorgegebenen Wrapper-Code.
Wenn ich JavaScript inline einbinde funktioniert es nur teilweise. Normales JavaScript wird ausgeführt, jQuery funktioniert nur in wenigen Fällen.
Das funktioniert:
jQuery(document).ready(function(){
window.alert("Test");
});
Das funktioniert NICHT:
jQuery('.testklasse').click(function(){
window.alert("Test");
});
Zum Vergleich, das funktioniert:
<script>
function(){
window.alert("Test");
}
</script>
<div onclick="geklickt();"><img src="..." /></div>
Ich verwende ein eigenes, auf Zen basierendes Theme. Das Modul jQuery Update ist installert, "JavaScript-Dateien aggregieren" ist deaktiviert und es treten laut Fehlerkonsole keine Fehler auf.
Die diversen Anleitungen, die ich gefunden habe, sagen alle nur, man soll inline jQuery(...) statt $(...) schreiben, was ich tue, und den Wrapper-Code in den Dateien verwenden, was ich auch tue.
Was ist da los?
Gruß
~Raen
- Anmelden oder Registrieren um Kommentare zu schreiben
Hallo,von den Problemen her
am 08.11.2013 - 20:30 Uhr
Hallo,
von den Problemen her ist das so eine Mischung zwischen Drupal bezogenen und allgemeinen.
Ich gehe hier mal nur auf die Drupal 7-Problematik ein:
Um die $-Variable als JQuery-Placeholder in Drupal 7 zu benutzen musst Du nur einen Wrapper anlegen.
(function($) {
$(document).ready(function($) {
// deine Funktionsaufrufe
});
//deine Funktionen
}(jQuery));
der Rest sind reine Javascript-Probleme, zu denen Du Dich gesondert informieren solltest.
Gruß
Christian
Das mit dem Wrapper-Code ist
am 11.11.2013 - 17:38 Uhr
Das mit dem Wrapper-Code ist mir bekannt, den verwende ich auch.
Ich weiß nicht, wo das Problem liegt, aber es scheint sich von selbst behoben zu haben. Heute Morgen habe ich die Seite geöffnet, prompt hüpft mir ein Alert ins Gesicht mit dem Inhalt "test", den ich per JS-Dokument eingebunden hatte, und der bisher nicht funktionierte.
Nachdem mich das Problem eine Woche lang in Atem gehalten hat, scheint es sich jetzt übers Wochenende von selbst gelöst zu haben. Zumindest funktioniert jetzt alles wie es soll. Hoffentlich bleibt es jetzt so. *auf Holz klopf*
Nachtrag: Ich habe den Ursprung des Problems offenbar gefunden. Ich verwende auf der Seite den Flexslider und habe dessen Code mit entsprechendem Wrapper-Code umgeben, wie von Drupal vorgegeben. Das war ein Fehler, ich habe nicht bedacht, dass Flexslider seine eigene Variante des noConflict macht. Und so sind die beiden noConflict-Codes miteinander in Konflikt geraten. Nachdem ich Flexslider ohne Wrapper-Code eingebunden habe, funktioniert es wieder einwandfrei.