Jupp Kleingeist: onmouseover, Name der Grafik ermitteln

Hallo,

mittels
 <IMG datafld="Bild" ...>

werden mit diesem einen Aufruf aus einer Datei 'n' Bildnamen gelesen und dargestellt.
Nun soll jedes Bild soll mittels onmouseover einen eigenen Verweis erhalten.
Gerne würde ich den Namen der Bilddatei per id=/name= gleich mit zuweisen. Doch das scheint nicht zu gehen.

Mit document.images[n].scr stehen mir alle verwendeten Dateinamen zur Verfügung. Nur wie erfahre ich von onmouseover auf welchem Bild 'image[x]'der Cursor gerade steht?

MfG JK

  1. hi,

    Nur wie erfahre ich von onmouseover auf welchem Bild 'image[x]'der Cursor gerade steht?

    du könntest der aufgerufenen funktion this als parameter übergeben, dann solltest du mit this.name auch zugriff auf den bildnamen haben.

    gruss,
    wahsaga

    1. du könntest der aufgerufenen funktion this als parameter übergeben, dann solltest du mit this.name auch zugriff auf den bildnamen haben.

      gruss,
      wahsaga

      Danke für die schnelle Antwort.
      Probiert und fehlgeschlagen.
      alert(this.name)zeigt keinen Inhalt an.
      Verstehen wir uns richtig, es ist kein name= oder id= vergeben. Lediglich der Dateiname bild-xy.jpg ist irgendwo bekannt. zB. in document.images[n].src   . Wenn onmouseover  auf das Bild reagiert sollte auch irgendwie 'n' heraus zu bekommen sein.

      Gruß JK

      1. alert(this.name)zeigt keinen Inhalt an.
        Verstehen wir uns richtig, es ist kein name= oder id= vergeben. Lediglich der Dateiname bild-xy.jpg ist irgendwo bekannt. zB. in document.images[n].src   . Wenn onmouseover  auf das Bild reagiert sollte auch irgendwie 'n' heraus zu bekommen sein.

        wenn du keinen Namen vergeben hast gibt es auch keinen Namen. Und n kannst du nur indirekt rauskriegen sollte aer auc nicht notwendig sein, da du ja bereits die Refrenz hast (this).

        Struppi.

        1. wenn du keinen Namen vergeben hast gibt es auch keinen Namen. Und n kannst du nur indirekt rauskriegen sollte aer auc nicht notwendig sein, da du ja bereits die Refrenz hast (this).
          Struppi.

          Hallo,

          die Referenz this ist in diesem Fall nicht gegeben.

          Etwas konkreter, Bsp.:

          Externe Datei: Inhalt.txt
          Bildname  |Beschreibung
          Bild-1.jpg|Ein schönen Bild
          Bild-2.jpg|Noch ein Bild
          Bild-3.jpg|und so weiter ...

          Diese folgenden Zeilen lesen die Datei Inhalt.txt aus und stellen alle Bilder nebst der Beschreibung dar.

          <Table ...><TR><TD ...>
          <a onmouseover="show(this)"
          <span  datafld="Beschreibung" > </span>
          <IMG datafld="Bildname"></a>
          </Table>

          Würde ich eine id/ name vergeben, hätten alle Bilder die gleiche id/name. Auch onmouseover nebst parameter ist einheitlich für alle Bilder. Es bleibt nur herauszufinden auf welchem Bild der Cursor steht wenn show() aufgerufen wird.

          Gruß JK

          1. <Table ...><TR><TD ...>
            <a onmouseover="show(this)"
            <span  datafld="Beschreibung" > </span>
            <IMG datafld="Bildname"></a>
            </Table>

            ist der Link notwendig?
            Wenn ja, bleibt dir als Option, einen Zähler mitlaufen zu lassen (ich hab keine Ahnung ob das geht, da mir datafld überhaupt nichts sagt und ich keine Ahnung habe mit was für einer Programmiersprache du hier arbeitest) und der Funktion show zu übergeben.

            Würde ich eine id/ name vergeben, hätten alle Bilder die gleiche id/name. Auch onmouseover nebst parameter ist einheitlich für alle Bilder. Es bleibt nur herauszufinden auf welchem Bild der Cursor steht wenn show() aufgerufen wird.

            Du meinst den Mauszeiger, der Cursor ist das Ding in einem Texteingabefeld.
            Eventuell kommst du über childnotes an das Bildhttp://selfhtml.teamone.de/javascript/objekte/node.htm#child_nodes

            Struppi.

            1. hi,

              ich hab keine Ahnung ob das geht, da mir datafld überhaupt nichts sagt und ich keine Ahnung habe mit was für einer Programmiersprache du hier arbeitest

              ist ein spezielles, von MS im IE implementiertes konzept, um daten aus externen datenquellen einbinden zu können, siehe auch http://selfhtml.teamone.de/dhtml/modelle/datenanbindung.htm.

              ich würde dem frager allerdings auch empfehlen, sich gleich mit einer serverseitigen scripting-technik zu beschäftigen, als mit diesem MS-only-kram.

              gruss,
              wahsaga

              1. hi,

                ist ein spezielles, von MS im IE implementiertes konzept, um daten aus externen datenquellen einbinden zu können, siehe auch http://selfhtml.teamone.de/dhtml/modelle/datenanbindung.htm.

                Hallo,

                ich habe da mehr ein grundsätzliches Problem. Vergessen wir einmal die Datenanbindung.
                Im Kern, auf irgend eine Art u. Weise wird eine Seite mit mehreren Bildern aufgebaut. Und warum auch immer, liegt onmouseover über alle Bilder.
                <IMG  src="Bildxy.jpg" >);
                <IMG  src="Bildyxz.jpg" >);
                <a onmouseover ("show()");>
                <script >
                while(i <= 20) {
                  document.write ('<IMG  src="Bild-'+ i + '.jpg" >);
                  i = i + 1;
                               }
                </script>
                </a>

                Ich möchte nun in show() feststellen, mit welchem Bild der Event ausgelöst wurde.
                mit document.images[n].src stehen die Namen (.../pics/Bildxy.jpg usw.)aller Bilder ,auch die außerhalb der Schleife zur Verfügung.
                Irgendwo (document...) muß doch stehen wer den Event ausgelöst hat.

                MfG JK

                1. ich habe da mehr ein grundsätzliches Problem. Vergessen wir einmal die Datenanbindung.

                  Naja, wenn du es nicht so machen würdest wie du es machst könnte man es vermutlich einfacher lösen.

                  Im Kern, auf irgend eine Art u. Weise wird eine Seite mit mehreren Bildern aufgebaut. Und warum auch immer, liegt onmouseover über alle Bilder.

                  Nein!
                  es liegt kein mouseover über den Bildern, sonst könntest du ja this verwenden.

                  <img onmousover="alert(this.src);" src="....">

                  <IMG  src="Bildxy.jpg" >);
                  <IMG  src="Bildyxz.jpg" >);
                  <a onmouseover ("show()");>
                  <script >
                  while(i <= 20) {
                    document.write ('<IMG  src="Bild-'+ i + '.jpg" >);
                    i = i + 1;
                                 }
                  </script>
                  </a>

                  Ich möchte nun in show() feststellen, mit welchem Bild der Event ausgelöst wurde.

                  Dazu musst du in show alle Kindelement (s. mein vorheriges Posting) durchgehen und prüfen ob die Postion des Events mit der position des Elementes sich überschneiden.

                  Viel Spaß.

                  Irgendwo (document...) muß doch stehen wer den Event ausgelöst hat.

                  ja der Link wo onmouseover steht.

                  Struppi.