+ Antworten
Ergebnis 1 bis 3 von 3

Thema: Probleme bei Mehrfachverwendung von Modulen (IDs / JavaScript)?

  1. #1
    Neu an Board
    Registriert seit
    27.06.2013
    Beiträge
    76
    Bedankte sich
    10
    Erhielt 5 Danksagungen
    in 3 Beiträgen

    Frage Probleme bei Mehrfachverwendung von Modulen (IDs / JavaScript)?

    Hallo zusammen.

    Ich bin gerade dabei ein Modul zu entwickeln mit dem man diverse Charts ausgeben lassen kann. Dazu verwende ich die Flot-Bibliothek.
    Um die Charts zu zeichnen muss man dafür IDs der DIVs angeben. Da ich allerdings mehrere Module mit unterschiedlichen Charts ausgeben möchte, muss ich die IDs ja für jedes Modul so aufbauen lassen, dass sie einzigartig sind?!
    Ich habe mir überlegt den Namen aus dem Modulnamen, der eigentlichen ID und der ID des Moduls von Joomla zusammen zu setzen:

    PHP-Code:
    $hoverID = "statsHover".$module->id;
    ...
    <div id="<?php echo $hoverID?>" class="statsHover"></div>
    ...
    jQuery('#<?php echo $hoverID?>').remove();
    Das funktioniert soweit auch wie es soll. Die Frage ist nur, ob das auch der richtige Weg ist oder ob es bessere Methoden gibt.

    Komischer Weise kann ich allerdings keine zwei+ Module gleichzeitig darstellen. Die DIVs werden nur erzeugt, wenn sich das Modul alleine auf der Seite befindet?! Dabei kommen ja keine doppelten IDs in den Modulen vor.

    Kann es evtl. auch mit dem jQuery bzw. JavaScript zusammen hängen? Ich lade ja die Daten per AJAX nach. Aber in meiner Konsole kann ich auch nur einen Request feststellen. Fehlermeldungen gibt es keine.

    Irgendwie fehlt mir momentan die Stelle an der ich ansetzen könnte. Hat einer von euch eine Idee?

    MfG Monk
    Geändert von dr monk (08.01.2014 um 16:51 Uhr) Grund: Rechtschreibfehler

  2. #2
    Hat hier eine Zweitwohnung Avatar von Matrikular
    Registriert seit
    14.01.2006
    Ort
    Nienburg
    Alter
    40
    Beiträge
    1.440
    Bedankte sich
    219
    Erhielt 593 Danksagungen
    in 441 Beiträgen

    Standard

    Unterstützt die FLOT-Bibliothek das Laden von mehreren Charts pro Seite?
    Geändert von Matrikular (31.01.2014 um 22:14 Uhr) Grund: von mehreren
    Joomla! Development? Hire me! | Teach Yourself Programming in Ten Years

  3. #3
    Neu an Board
    Registriert seit
    27.06.2013
    Beiträge
    76
    Bedankte sich
    10
    Erhielt 5 Danksagungen
    in 3 Beiträgen

    Standard

    Ich habe gerade das Phänomen mit einem anderen, einfacheren Modul getestet welches einfach nur die Uhrzeit und das Datum ausgibt (über reinen JS-Code in der default.php des Templates). Da man die JS-Funktionen auslagern sollte und dann per JHtml laden soll, werde ich das als nächstes testen. Dann kann ich zumindest ausschließen das die Funktionen für den Fehler sorgen.

    FLOT selbst kann ohne Probleme mehrere Charts gleichzeitig anzeigen lassen. Das habe ich in einer "Stand-Alone" Seite schon getestet gehabt.

    Ich melde mich nochmal wenn ich die JS-Funktionen aus default.php entfernt habe.

    MfG Monk

    Ich habe jetzt das JavaScript in eine externe Datei verlagert. Die Modul-ID übergebe ich dann der Funktion damit diese weiß in welche Elemente sie was schreiben muss.
    Allerdings funktioniert es nach wie vor nicht mit zwei gleichen Modulen. Es wird immer nur in dem ersten der Inhalt angezeigt. Im zweiten Modul ist zwar das HTML-Gerüst vorhanden, aber es werden keine Daten rein geschrieben.

    Ich habe mal das ganz einfach gestrickte Modul angehängt. (in der xml stehen noch nicht die JS-File drin)

    MfG Monk

    Ich habe heute mal den XML-Aufbau aus einem Standard-Joomla3-Modul genommen um ausschließen zu können das dort der fehler liegt. Er scheint nicht dort zu liegen

    Ich habe das Problem glaub ich gefunden: Ich habe bei "onLoad" die JS Funktion aufgerufen. Wenn ich auf "domready" abfrage, scheint es zu funktionieren.
    Folgende Funktion rufe ich jetzt in der default.php des Modul-Templates auf:

    PHP-Code:
    <script type="text/javascript">
        window.addEvent('domready',function(){
            startTime('<?php echo $module->id?>');
    });
    </script>
    Oder platziert man diese Abfrage besser wo anders / bzw. grundsätzlich anders?

    MfG Monk
    Angehängte Dateien
    Geändert von Helrunar (13.01.2014 um 13:48 Uhr) Grund: Bitte den Edit-Button verwenden

+ Antworten

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein