JQuery OnLoad mit Joomla

  • Hallo,

    ich möchte in einem Custom-Modul die Reihenfolge der Div-Elemente randomisieren. Dazu habe ich folgendes Beispiel gefunden, das mit Javascript und JQuery arbeitet: JSFiddle

    Wie kann man sich das am einfachsten im Joomla-Kontext zunutzemachen? Ich nutze ein Helix3-Template, ich habe also den JS-Code in eine Funktion shuffle() in den Custom JS-Bereich des Templates ausgelagert. Nun müsste die Funktion allerdings beim Laden der Seite geladen werden, ich vermute beim Laden des Body-Elements? Wie kann man das mit Joomla umsetzen, außer evtl. das onload im body-Tag direkt hardzucoden?

    Danke, LG Calyx

  • JQuery kennt 2 Wege.


    Code
    jQuery(document).ready(function()
    {        
        ---- CODE ----
    });
    Code
    jQuery(window).on("load", function()
    {
        ---- CODE ----
    });

    Ready wird gefeuert, wenn das DOM geladen ist. Im Normalfall ausreichend.


    Load wird etwas später gefeuert, nachdem wirklich der gesamte Seiteninhalt "in echt" geladen ist. Wenn Ready reicht, sollte man das verwenden und nur auf Load ausweichen, wenns gar nicht mehr anders geht.


    Nur nebenbei:

    Das an vielen Stellen im Netz zu findende

    Code
    jQuery(window).load(function()
    {
     ---CODE---
    });

    ist mittlerweile veraltet. und durch obige zweite Variante zu ersetzen.

  • Falls jemand per Google auf diesen Thread stößt:

    Ich habe das Problem durch PHP recht einfach und vermutlich auch performanter lösen können (Meine Empfehlung für Inline-PHP wäre das Plugin "Sourcerer", damit kann man ohne großen Aufwand überall Code schreiben):

    Einfach alles in ein Array packen, einmal array.shuffle() ausführen und danach die Daten in einer foreach-Schleife ausgeben. Dennoch danke für die Erläuterungen bzgl. jQuery, das kann ich sicher auch einmal brauchen.