Linuchs: stopPropagation();

Moin,

bei meinen Liedtexten kann man zwecks Übung (Singen / Ukulele) eine Textzeile anklicken, dann startet die Audio-Wiedergabe dort.

Nun möchte ich noch eins draufsetzen und die roten Akkorde anklicken, damit sie erklingen.

Doch dann beginnt die Textzeile neu, das ist nicht erwünscht.

Ist stopPropagation() das geeignete Mittel und wie wende ich es an?

So funktioniert es nicht:

<b><b class="cur_pointer" onclick="akkorde.src='../mp3/akk_C_dur.mp3';akkorde.play();this.stopPropagation();">C</b></b>

Gruß, Linuchs

  1. Hallo Linuchs,

    Ist stopPropagation() das geeignete Mittel

    Ja.

    und wie wende ich es an?

    Auf dem Event-Objekt. In this steht das geklickte b Element. Du müsstest also für deinen Code einen Fehler in der Konsole erhalten haben, dass undefined keine Funktion sei, oder so was.

    Ob Firefox aus Kompatibilitätsgründen in on... Handlern die globale Variable event bereitstellt, weiß ich gerade nicht. Da müsste das richtige Objekt drin stehen. Probiere es aus.

    Dass ein b Element nicht klickbar sein sollte, merke ich nur mal so an. Bedienbarkeit und Zugänglichkeit interessieren dich bei diesen Seiten ja eh nicht

    Rolf

    --
    sumpsi - posui - obstruxi
  2. Hallo Linuchs,

    Ist stopPropagation() das geeignete Mittel

    Äh, das heißt, eigentlich nicht. Zwei interaktive Elemente zu schachteln ist das ungeeignete Mittel, und das hat du hier getan (die b Elemente sind sicherlich Kindelemente der Zeilen).

    Besser wäre es, an Stelle der klickbaren Zeilen kleine Play-Buttons an den Zeilenanfang zu setzen, so dass die Akkorde Geschwister davon sind (bzw. Neffen). Dann stören sich die Events nicht gegenseitig.

    Dann noch Buttons statt b Elemente für die Akkorde, und die Sache ist gleich viel besser, aus technischer Sicht. Die Akkord-Buttons kannst du ja so stylen, dass sie kein visuelles Chaos anrichten.

    Rolf

    --
    sumpsi - posui - obstruxi
    1. Hallo Rolf,

      die b Elemente sind sicherlich Kindelemente der Zeilen

      Richtig.

      Play-Buttons an den Zeilenanfang

      Sie müssen an den richtigen Silben im Text stehen, denn es sind die Akkorde, die der Gitarrist spielt.

      Höre mal rein: Leben ist mehr

      Gruß, Linuchs

      1. Hallo,

        Play-Buttons an den Zeilenanfang

        Sie müssen an den richtigen Silben im Text stehen, denn es sind die Akkorde, die der Gitarrist spielt.

        Du hast Rolfs Vorschlag nicht verstanden. Die Akkorde sollen bleiben, wo sie sind, aber Buttons sein. Die anklickbaren Zeilen sollst du verändern…

        Gruß
        Kalk

        1. Ach so, das ist eine Idee ...