Felix Riesterer: JS: Globale Variable ??

Beitrag lesen

Lieber juppix,

dass Du ein Timing-Reihenfolgen-Problem hast, wurde Dir schon gesagt. Hier ein Vorschlag, der vielleicht (aber vielleicht auch nicht) helfen könnte, die Reihenfolgenproblematik in den Griff zu bekommen.

var listObj = [
    // first object (listObj[0])
    {
        content: '<span class="semantic"></span>',
        link: ''
    },
    // second object (listObj[1])
    {
        content: '__placeholder', // to be filled later
        link: ''
    } // (...)
];

$.get( "./marquee/1.txt", function( data ) {
    // quick and dirty (simply use second array element)
    listObj[1].content = data;

    /* find the required array element
     * based on content with placeholder
     */
    listObj.forEach(function (o) {
        if (o.content && o.content == '__placeholder') {
            o.content = data;
        }
    });

    createMyMarquee(); // uses listObj to create marquee contents
});

Du benötigst also eine Vorrichtung, die Dir das Bauen Deiner visuellen Nervensäge zu einem beliebigen Zeitpunkt erledigt. Dazu habe ich oben einen Funktionsaufruf createMyMarquee() notiert, der genau dieses leisten soll.

Das Bauen mit listObj sollte wirklich erst dann erfolgen, wenn der Ajax-Aufruf fertig ist. Das ist hier der tatsächliche Knackpunkt.

<font color="#a0a0a0";><i class="fas fa-truck-moving fa-flip-horizontal"></i> <i class="fas fa-truck-moving fa-flip-horizontal"></i> <i class="fas fa-truck-moving fa-flip-horizontal"></i> &nbsp;&nbsp;&nbsp;&nbsp;</font>

Meine Fresse! Das ist so ultra-gruselig, das kannst Du nicht ernst gemeint haben. Ist bei Dir schon Halloween?

Der Gruselfaktor rührt daher:

  1. Das font-Element ist schon sehr lange obsolet.
  2. Wer Klassenbezeichner einsetzt, gestaltet die Optik mit CSS und kann daher auf obsolete Elemente wie font verzichten.
  3. Warum ein i-Element? Ist das ein Missverständnis wegen des Wortes "Fließtext"?
  4. Geschützte/erzwungene Leerzeichen sind nicht dazu da, Elemente mit einer Mindestbreite oder einem Abstand zu Nachbarelementen auszustatten. Das geht mit CSS besser und auch genauer.

Liebe Grüße,

Felix Riesterer.