suche Hilfe bei Anpassung eines Scripts

Diskutiere suche Hilfe bei Anpassung eines Scripts im Für Verirrte - Fragen zu JavaScript Forum; Ich bin Musiklehrer und habe für meine kleine Schule ein Songbook (Übungsplattform...) geschrieben. Dort gibt es die Möglichkeit mittels Buttons...

  1. lacov
    lacov Neues Mitglied
    Ich bin Musiklehrer und habe für meine kleine Schule ein Songbook (Übungsplattform...) geschrieben.
    Dort gibt es die Möglichkeit mittels Buttons den Song (Text + AKKORDE) in jede Tonart zu transponieren. Dieses Javascript habe ich von Christian Frauscher. Man kann aus den mittlerweise über 500 Songs sein persönliches Songbook zusammen bauen. Nun möchte ich, dass der Schüler den Transposewert zu dem Song abspeichern kann (soweit geht schon alles) und beim Aufruf des Songs der Wert den Akkorde automatisch transponiert.
    Der Transposewert wird in einer URL Variablen an den Song gehängt. Kann aber auch in eine : <input type="hidden"> geschrieben werden.
    Leider bekomme ich das nicht hin und benötige Hilfe!

    Da das Songbook nicht ohne Passwort geht... DEMOSeite:[/B] http://sample.webotto.de/Songbook_demo.php
    hier das Script:
    // JavaScript Document
    $().ready(function() {
    var octave = [
    "A",
    "B",
    "H",
    "C",
    "C#",
    "D",
    "Eb",
    "E",
    "F",
    "F#",
    "G",
    "G#"
    ];
    // START Button und Input erstellen:
    // hier werden die Buttons hinzugefügt.
    var $btnGroup = $("#MyNavi .btn-group");
    var $btnDown = $("<button>").addClass("btn btn-lg");
    $btnDown.html('<i class="fa fa-chevron-down"></i>');
    $btnDown.appendTo ($btnGroup);

    var $transpose = $("<input>").addClass("btn btn-lg");
    $transpose.val("0").width("3em");
    $transpose.appendTo ($btnGroup);

    var $btnUp = $("<button>").addClass("btn btn-lg");
    $btnUp.html('<i class="fa fa-chevron-up"></i>');
    $btnUp.appendTo($btnGroup);
    // ENDE Buttons & Input erstellen.

    // WENN Buttons & Input im HTML vorhanden reichen stattdessen auch diese drei Zeilen:
    //var $transpose = $(".input-transpose");
    //var $btnDown = $(".button-transpose-down");
    //var $btnUp = $(".button-transpose-up");


    // Event-Handler:
    $btnUp.click(function(e) {
    $transpose.val(parseInt($transpose.val())+1)
    .change();
    e.preventDefault();
    return false;
    });
    $btnDown.click(function(e) {
    $transpose.val(parseInt($transpose.val())-1)
    .change();
    e.preventDefault();
    return false;
    });

    $transpose.bind("change keyup", function () {
    if (this.value > 6) this.value = parseInt(this.value) - 12;
    if (this.value < -6) this.value = parseInt(this.value) + 12;
    var value = parseInt(this.value);

    if (!Number.isNaN(value)) {
    updateChords(value);
    } else {
    this.value = "0";
    }
    });

    // helper functions
    function updateChords(trans) {
    var $accords = $(".Akkord");
    $accords.each(function() {
    var $this = $(this);
    var value = $this.text();

    if ($this.data("original")) {
    value = $this.data("original");
    } else {
    $this.data("original", value);
    }
    if (trans != 0) {


    value = value.replace(/[\s\/]([abcdefgh])/g,normalizeMol).replace(/(A|B|C|D|E|F|G|H)(|[#])?/g,function(chord,tone,mod) {
    var newChord = transpose(chord,trans);
    return newChord;
    });
    $this.html(value);

    } else {
    $this.html($this.data("original"));
    }

    })
    }
    function normalizeMol(match) {
    return match.toUpperCase() + "m";
    }
    function transpose(chord,transpose) {
    var mod;
    if (chord.length > 1) {
    mod = chord.substr(1,1);
    chord = chord.substr(0,1);
    }
    var chordNr = parseInt(octave.indexOf(chord));
    if (chordNr>=0) {
    chordNr += parseInt(transpose);
    if (mod=="#") chordNr+=1;
    if (mod=="b" && chord !== "B") chordNr-=1;

    if (mod == "b" && chord == "B") chordNr = 1 + transpose;

    if (chordNr < 0) chordNr = chordNr+12;
    if (chordNr >= 12) chordNr = chordNr%12;

    return octave[chordNr] + (chordNr==1?"b":"");
    }
    return false;
    }
    });
     
  2. Vielleicht hilft dir dieses Training hier weiter.
  3. krgewb
    krgewb Aktives Mitglied
    In Monospace-Schrift:

    Code (Text):
    $().ready(function() {
    var octave = [
    "A",
    "B",
    "H",
    "C",
    "C#",
    "D",
    "Eb",
    "E",
    "F",
    "F#",
    "G",
    "G#"
    ];
    // START Button und Input erstellen:
    // hier werden die Buttons hinzugefügt.
    var $btnGroup = $("#MyNavi .btn-group");
    var $btnDown = $("<button>").addClass("btn btn-lg");
    $btnDown.html('<i class="fa fa-chevron-down"></i>');
    $btnDown.appendTo ($btnGroup);

    var $transpose = $("<input>").addClass("btn btn-lg");
    $transpose.val("0").width("3em");
    $transpose.appendTo ($btnGroup);

    var $btnUp = $("<button>").addClass("btn btn-lg");
    $btnUp.html('<i class="fa fa-chevron-up"></i>');
    $btnUp.appendTo($btnGroup);
    // ENDE Buttons & Input erstellen.

    // WENN Buttons & Input im HTML vorhanden reichen stattdessen auch diese drei Zeilen:
    //var $transpose = $(".input-transpose");
    //var $btnDown = $(".button-transpose-down");
    //var $btnUp = $(".button-transpose-up");


    // Event-Handler:
    $btnUp.click(function(e) {
    $transpose.val(parseInt($transpose.val())+1)
    .change();
    e.preventDefault();
    return false;
    });
    $btnDown.click(function(e) {
    $transpose.val(parseInt($transpose.val())-1)
    .change();
    e.preventDefault();
    return false;
    });

    $transpose.bind("change keyup", function () {
    if (this.value > 6) this.value = parseInt(this.value) - 12;
    if (this.value < -6) this.value = parseInt(this.value) + 12;
    var value = parseInt(this.value);

    if (!Number.isNaN(value)) {
    updateChords(value);
    } else {
    this.value = "0";
    }
    });

    // helper functions
    function updateChords(trans) {
    var $accords = $(".Akkord");
    $accords.each(function() {
    var $this = $(this);
    var value = $this.text();

    if ($this.data("original")) {
    value = $this.data("original");
    } else {
    $this.data("original", value);
    }
    if (trans != 0) {


    value = value.replace(/[\s\/]([abcdefgh])/g,normalizeMol).replace(/(A|B|C|D|E|F|G|H)(|[#])?/g,function(chord,tone,mod) {
    var newChord = transpose(chord,trans);
    return newChord;
    });
    $this.html(value);

    } else {
    $this.html($this.data("original"));
    }

    })
    }
    function normalizeMol(match) {
    return match.toUpperCase() + "m";
    }
    function transpose(chord,transpose) {
    var mod;
    if (chord.length > 1) {
    mod = chord.substr(1,1);
    chord = chord.substr(0,1);
    }
    var chordNr = parseInt(octave.indexOf(chord));
    if (chordNr>=0) {
    chordNr += parseInt(transpose);
    if (mod=="#") chordNr+=1;
    if (mod=="b" && chord !== "B") chordNr-=1;

    if (mod == "b" && chord == "B") chordNr = 1 + transpose;

    if (chordNr < 0) chordNr = chordNr+12;
    if (chordNr >= 12) chordNr = chordNr%12;

    return octave[chordNr] + (chordNr==1?"b":"");
    }
    return false;
    }
    });
     
  4. Barista
    Barista Mitglied
    Bei Deinem Problem handelt es sich um JavaScript.

    Deshalb hast Du sicher Deine Frage im falschen Forum gestellt.

    Außerdem ist Deine Frage sehr unspezifisch.
     
  5. Thallius
    Thallius Bekanntes Mitglied
    Na dann schau mal wie dieses Forum heißt....
     
  6. Barista
    Barista Mitglied
    Seltsam, ich habe diesen Thread im Forum JavaEE gefunden.
     
  7. Flown
    Flown Administrator Mitarbeiter
    Ist auch von mir verschoben worden.
     
  8. Wenn du Java lernen möchtest, empfehlen wir dir diese Online-Training hier
Die Seite wird geladen...

suche Hilfe bei Anpassung eines Scripts - Ähnliche Themen

Umkreissuche - brauche Hilfe bei SQL Statement
Umkreissuche - brauche Hilfe bei SQL Statement im Forum Datenbankprogrammierung
Suche Hilfe bei Fertigstellung von Projekt
Suche Hilfe bei Fertigstellung von Projekt im Forum Private Stellangebote und Stellensuche von Usern
Suche Hilfestellung/Nachhilfelehrer
Suche Hilfestellung/Nachhilfelehrer im Forum Private Stellangebote und Stellensuche von Usern
Suche hilfe bei Array
Suche hilfe bei Array im Forum Java Basics - Anfänger-Themen
Suche: Nachhilfe im Raum München
Suche: Nachhilfe im Raum München im Forum Plauderecke
Thema: suche Hilfe bei Anpassung eines Scripts