Javascript: Parameter an Funktion übergeben

  1. chrigu

    chrigu Thread Starter MacUser Mitglied

    Mitglied seit:
    08.03.2004
    Beiträge:
    155
    Zustimmungen:
    0
    Code:
    <script type="text/javascript">
    
    function bgschieb (pixel, elementId) {
        if (document.all && 'document.all.' + elementId + '.style.setAttribute') {
            'document.all.' + elementId + '.style.setAtrribute("backgroundPosition", "' + pixel + '", "false")';
        } else {
            'document.getElementById("' + elementId + '").style.backgroundPosition' = pixel ;
        }
    }
    </script>
    <ul>
    <li id="navi_home" onMouseover="bgschieb(-79px, navi_home)"><a href="#" title="Home">home</a>
    </li>
    </ul>
    
    Vielleicht erklärt das Script mein Vorhaben. Leider werden die Werte -79px und navi_home nicht von der Funktion verarbeitet, ich weiss allerdings nicht wie die Variablen innerhalb der Funktion notiert werden müssen.

    Das Script läuft nur mit fest definierten Werten innerhalb der Funktion, was aber nicht unbedingt zweckmässig ist.

    Ich danke schon mal für die guten Tips

    Gruess Chrigu
     
    chrigu, 05.06.2005
    #1
  2. lindic

    lindic MacUser Mitglied

    Mitglied seit:
    20.11.2004
    Beiträge:
    197
    Zustimmungen:
    5
    Moin,

    das sollte mit einfachen Hochkommata gehen:

    HTML:
    <li id="navi_home" onMouseover="bgschieb('-79px', 'navi_home')">
     
    lindic, 05.06.2005
    #2
  3. msslovi0

    msslovi0 MacUser Mitglied

    Mitglied seit:
    20.03.2005
    Beiträge:
    2.714
    Zustimmungen:
    115
    Richtig. Aber wäre es nicht einfacher, das über css zu machen? Da kannst du auch in den Link-Status :)link, :active, :hover, :visited) angeben, welcher Teil des Hintergrundbildes angezeigt werden soll.

    Matt
     
    msslovi0, 05.06.2005
    #3
  4. chrigu

    chrigu Thread Starter MacUser Mitglied

    Mitglied seit:
    08.03.2004
    Beiträge:
    155
    Zustimmungen:
    0
    @lindic: Ok, ich hab jetzt noch die Hochkommatas eingefügt, wie in deinem Beispiel, leider ohne Erfolg. Ich bin mir immer noch unsicher, ob meine schreibweise so korrekt ist, wie oben angegeben. Ist das überhaupt so möglich? Ich hab das bisher nur in PHP angewendet, sollte doch auch mit Javascript funkioneren?

    @msslovi0: Das wollte ich zuerst so machen, aber Safari will nicht sobald ein Selektor mit a:hover und einer fest definierten Breite, Höhe und Position definiert wurde. Mit Firefox gings.
     
    chrigu, 05.06.2005
    #4
  5. msslovi0

    msslovi0 MacUser Mitglied

    Mitglied seit:
    20.03.2005
    Beiträge:
    2.714
    Zustimmungen:
    115
    Der Javascript-Code hat, zumindest auf den ersten Blick, nichts falsches. Die JS-Konsole von Firefox hat sich aber als recht brauchbar erwiesen, wenn es darum geht JS-Code zu debuggen.

    Bzgl. css: Dieses Beispiel funktioniert bei mir plattform- und browserübergreifend fehlerfrei.

    Matt
     
    msslovi0, 05.06.2005
    #5
  6. chrigu

    chrigu Thread Starter MacUser Mitglied

    Mitglied seit:
    08.03.2004
    Beiträge:
    155
    Zustimmungen:
    0
    Ueehh... was fürn Zufall, du bist nicht etwa derjenige, der diese absolut perfekte Website Bartelme Design gebaut hat.

    Ich habe letzte Woche von einem Arbeitskollegen diesen Link bekommen, und stand dann am Wochenende staunend vor der Glotze. Es hat mich dann ermutigt an meinem Upgrade meiner Page weiter zu arbeiten. Jetzt staune ich nicht schlecht, dass der "Meister" höchstpersönlich mir Beihilfe leistet ;)

    Bin zurzeit auf Arbeit, aber werde am Abend mal den Source-Code auf meinen Webspace uploaden und versuchen die CSS Lösung in Angriff zu nehmen, vielleicht kannst du mir dann noch ein paar weitere Tips geben.

    THX! Chrigu
     
    chrigu, 06.06.2005
    #6
  7. sevY

    sevY

    Code:
    function bgschieb (pix, elementId) {
    var pixel=pix+'px';
        if (document.all && 'document.all.' + elementId + '.style.setAttribute') {
            'document.all.' + elementId + '.style.setAtrribute("backgroundPosition", "' + pixel + '", "false")';
        } else {
            'document.getElementById("' + elementId + '").style.backgroundPosition' = pixel ;
        }
    }
    </script>
    <ul>
    <li id="navi_home" onMouseover="bgschieb(-79, 'navi_home')"><a href="#" title="Home">home</a>
    </li>
    </ul>
    
    Oder wie im o.g. Beispiel ein Integer als Pixelparameter übergeben und direkt in der Funktion den Maßeinheitenstring konkatenieren.

    Yves
     
    sevY, 06.06.2005
    #7
  8. chrigu

    chrigu Thread Starter MacUser Mitglied

    Mitglied seit:
    08.03.2004
    Beiträge:
    155
    Zustimmungen:
    0
    @Yves: Danke für den Tip! werde das am Abend mal korrigieren.

    Gruess Chrigu
     
    chrigu, 06.06.2005
    #8
  9. msslovi0

    msslovi0 MacUser Mitglied

    Mitglied seit:
    20.03.2005
    Beiträge:
    2.714
    Zustimmungen:
    115
    Ich muss dich da enttäuschen, ich bin leider nicht der Meister pesönlich. Ich hatte eigentlich nur keine Lust, ein eigenes Beispiel zu schreiben :D Ich nutze die Seite aber immer wieder gerne, um mich mit Ideen zu versorgen.

    Es ist in der Tat beeindruckend, was Wolfgang Bartelme da ins Netz gestellt hat.

    css-Tipps kannst du von mir natürlich trotzdem bekommen.


    Matt
     
    msslovi0, 06.06.2005
    #9
  10. chrigu

    chrigu Thread Starter MacUser Mitglied

    Mitglied seit:
    08.03.2004
    Beiträge:
    155
    Zustimmungen:
    0
    Ok, ich habe das ganze mal auf den Webserver hinauf geschaufelt.

    Beispiel

    Ich habe nun die Funktion soweit modifiziert, das nur der Integer übergeben wird (ohne Massangabe).

    Das Problem liegt meiner Meinung noch an einem anderen Ort. Irgendwie wird die Funktion gar nicht aufgerufen und ich verstehe nicht was hier falsch läuft (siehe "test" link, ganz oben). Wer hat den Durchblick?

    Besten Dank schonmal für Hinweise

    Gruss Chrigu
     
    chrigu, 11.06.2005
    #10
Die Seite wird geladen...
Ähnliche Themen - Javascript Parameter Funktion
  1. Kester
    Antworten:
    2
    Aufrufe:
    273
    Kester
    14.02.2017
  2. kbundies
    Antworten:
    10
    Aufrufe:
    3.201
    scope
    19.02.2013
  3. Lior
    Antworten:
    6
    Aufrufe:
    1.013
    Kirzz
    04.10.2011
  4. mahed
    Antworten:
    0
    Aufrufe:
    573
    mahed
    02.09.2011
  5. mahed
    Antworten:
    11
    Aufrufe:
    849
    mahed
    31.08.2011