[gelöst]Javascript wird nicht ausgeführt

am 26.07.2013 - 12:22 Uhr in
Irgendwie steh ich auf den Schlauch. Hab hier ein kleines Script: http://jsfiddle.net/XmLVC/1/ und würde es gerne in Drupal einbinden.
Da die Version von jQuery(v 1.2.6) etwas älter ist habe ich das Script folgendermassen über die .info reingeladen.
js/script.js:
Drupal.behaviors.pagerScript = function() {
$(window).scroll(function(){
$('.pager').css({ 'left': $(this).scrollLeft() + (($(window).width() - $(".pager").width()) / 2) });
});
$(window).resize(function(){
$('.pager').css({ 'left': $(this).scrollLeft() + (($(window).width() - $(".pager").width()) / 2) });
});
$(function(){
$('.pager').css({ 'left': $(this).scrollLeft() + (($(window).width() - $(".pager").width()) / 2) });
});
}
Das Script wird ordentlich geladen und über die Web-Konsole sowie über Firebug werden keine Fehler angezeigt. Auch das Implementieren über
drupal_add_js(' ... ')
erzielt keine Ergebnisse.
Ein anderes Script auf dieser Seite wird unter Mac Crome ausgeführt, aber nicht in einem Windowbrowser. Wie sich das neue Script auf einer Linuxoberfläche verhält, konnte ich noch nicht prüfen.
Grüsse M
- Anmelden oder Registrieren um Kommentare zu schreiben
Seit Drupal 7 mußt Du, wenn
am 26.07.2013 - 12:39 Uhr
Seit Drupal 7 mußt Du, wenn die $-Funktion im Script verendet werden soll, das Script in einen Umschlag packen, der sie $-Funktion definiert.
(function ($){
....... // Dein Code kommt an diese Stelle
})(jQuery);
Beste Grüße
Werner
Die benutzte Version ist
am 26.07.2013 - 13:07 Uhr
Die benutzte Version ist Drupal 6. Den Ansatz hatte ich auch schon verfolgt, aber ohne Erfolg.
javascript
am 26.07.2013 - 15:27 Uhr
Moin.
Ich frag mich ja gerade, was die letzten Zeilen des Scripts bewirken sollen:
$(function(){
$('.pager').css({ 'left': $(this).scrollLeft() + (($(window).width() - $(".pager").width()) / 2) });
});
Was passiert, wenn Du in die anderen Funktionen eine Debug-Ausgabe (
console.log()
) einfügst?Hey
am 26.07.2013 - 17:52 Uhr
Die Funktion soll ausgeführt werden, sobald die Seite aufgerufen wird. Bin gern für Anregungen offen, da ich noch nicht so große Erfahrung mit jQuery hab.
Auch das das debuggen ist neu für mich, ich hab das jetzt mit den einzelenen Werten durchgeprüft und es gibt alles ordentlich wieder.
Bsp:
(function ($) {
$(window).scroll(function(){
$('.pager').css({'left': $(this).scrollLeft() + (($(window).width() - $(".pager").width()) / 2)});
var winwidth = $(window).width();
console.log('winwidth='+winwidth);
});
})(jQuery);
Die Prüfung vom Endergebniss habe ich noch nicht hinbekommen. Aber wie oben beschrieben, bei jsFiddle funktioniert es tadellos.
position
am 26.07.2013 - 17:58 Uhr
Nur mal so ins Blaue hineingefragt: reagiert das Element mit der Klasse "pager" denn generell auf die CSS-Anweisung "left"? Also wird das Element korrekt positioniert, wenn Du die Anweisung mal spaßeshalber direkt im CSS des Themes hinterlegst?
Ich vermute, da fehlt irgendwo noch ein
position: absolute;
oderposition: relative;
.Warum in die Ferne schweifen,
am 26.07.2013 - 18:07 Uhr
Warum in die Ferne schweifen, wenn die Lösung liegt so nah! Du hast richtig vermutet und ich komm mir jetzt ein wenig deppern vor. Beim rumtüfteln ist das komplett unter gegangen. Danke dir, hast mindestens ein Bier gut!