Riesen Probleme mit jQuery und drupal.js
am 19.07.2013 - 14:42 Uhr in
Hallo Zusammen,
ich habe ein großes Problem mit jQuery und der Datei drupal.js!
In meiner Unwissenheit hatte ich jQuery in der Version 2 über die .info eingebunden (mir war nicht klar das die 1.4er standardmäßig eingebunden wird).
Alle Effekte funktionierten damit im Frontend auch tadellos (Slider, Accordions, Scrolltop-Links ...).
Das Problem ist aber, dass im Backend die Node-Bearbeitung im Overlay nicht richtig funktioniert. Das Fenster taucht einfach nicht auf. Auch mit dem "Administration menu" tauchte manchmal nicht auf.
Nehme ich das scripts[] = js/jquery-2.0.3.min.js
aus der .info-Datei heraus, geht KEIN einziger jquery-Effekt mehr. Dafür tauchen dann Overlay-Node-Bearbeitung und Administrator Menü im Backend wieder auf.
Selbst sowas einfaches wie:
$(document).ready(function() {
$("a").click(function() {
alert("hallo welt");
});
});
wird dann nicht ausgeführt.
Schuld daran ist offensichtlich die drupal.js. Diese wird scheinbar standardmäßig eingebunden.
In einem Test habe ich gesehen, dass wenn diese nicht eingebunden wird, alles einwandfrei läuft.
Meine Frage:
- Wofür ist die drupal.js zuständig? Brauch ich die? Was macht die?
- Wie kann ich die entfernen?
- Gibt es eine andere Lösung?
Vielen Dank im voraus für eure Hilfe!
t2k
- Anmelden oder Registrieren um Kommentare zu schreiben
Cache
am 19.07.2013 - 15:52 Uhr
Selbst sowas einfaches wie:
$(document).ready(function() {
$("a").click(function() {
alert("hallo welt");
});
});
wird dann nicht ausgeführt.
In Drupal 7 sollte das nicht verwendet werden, sondern
Drupal.behaviors
. Siehe dazu auch Drupal behaviors, Behaviors quick how to oder http://www.drupalcenter.de/node/26858.Ja, die drupal.js wird benötigt. In dieser Datei werden die grundlegenden Initialisierungen für das ganze JS-System in Drupal gemacht, ohne sie geht also gar nichts ;)
Hast Du schonmal probiert, den Cache zu leeren? Das kannst Du entweder unter admin/config/development/performance oder über das Modul [do:admin_menu Admin menu] machen.
Benötigst du denn wirklich
am 19.07.2013 - 19:28 Uhr
Benötigst du denn wirklich die letzte Version von jQuery (also die 2.x) - sonst kannst du auch auf das Modul [do:jquery_update] zurückgreifen - dies stellt dir auch die letzten jQuery Versionen zur Verfügung und macht mit dem Backend weniger Probleme. Dies müsstest du aber im Einzelfall genau testen - teilweise macht die Version 1.9 Probleme in Panels oder Views.
SteffenR