franz: array - Nummer des aktuellen Elements auslesen

hallo,

kann man die Nummer (z. b. eines Bild-Arrays) auslesen, wenn sich die Maus drüber bewegt? So dass ich, wenn ich durch mouseover eine Funktion aufrufe, mir die Funktion die Bildnummer zurückgibt(3 für das vierte Bild auf der Seite??)?

Irgendwie denk ich mir, dass das leicht sein müsste, finde allerdings nichts (in der Art wie "length" die Länge des Arrays berechnet).

danke schon mal

franz

  1. hi,

    kann man die Nummer (z. b. eines Bild-Arrays) auslesen, wenn sich die Maus drüber bewegt?

    Natürlich kann man das.

    Und weil ich grade in Spendierlaune bin:
    function bild(num) {
      grafik = new Array("bild1.gif","bild2.gif" .... "bildn.gif");
      j = num;
      document.images.location.href = grafik[j];
    }

    im body erfolgt der Aufruf dann mit:
    <a href = "javascript:bild(Arrayzahl)">
    wobei "Arrayzahl" natürlich die Ziffer ist, die der Stellung des gewünschten Bildes im Array entspricht.

    Gut getestete Theorie, ob sie unter deinen spezifischen Vorgaben funktioniert, mußt du probieren.

    Grüße aus Berlin

    Christoph S.

  2. Moin!

    kann man die Nummer (z. b. eines Bild-Arrays) auslesen, wenn sich die Maus drüber bewegt? So dass ich, wenn ich durch mouseover eine Funktion aufrufe, mir die Funktion die Bildnummer zurückgibt(3 für das vierte Bild auf der Seite??)?

    Nein.

    Irgendwie denk ich mir, dass das leicht sein müsste, finde allerdings nichts (in der Art wie "length" die Länge des Arrays berechnet).

    Du haeltst es fuer naheliegend, das ein beliebiges Array eine Funktion in der Art "gib mir die Nummer des Bildes, ueber dem der Mauszeiger gerade ist" vorhaelt? Phantasie hast Du ja schon... ;-)

    Was Du machen kannst: Nimm das Image-Objekt, um das es geht und gehe das fragliche Array Element fuer Element durch und vergleiche jeweils das Element mit dem Bildobjekt, ob es dasselbe ist. Nur wie kriegst Du das Image-Objekt? Wenn Du den onmouseover-Handler fuer das Bild selbst gesetzt hast, dann zeigt 'this' auf eben dieses Objekt (du musst also this mit jedem Arrayelement vergleichen). Aber meistens setzt man den onmouseover-Handler fuer einen Link, der das Bild umgibt, und dann zeigt this nicht mehr auf das Bild, sondern auf den Link. Tja, da hast Du schlechte Karten. Vielleicht kriegst Du das mit den modernen DOM-Methoden irgendwie hin, keine Ahnung. Ich schaetze, Du solltest uns besser mitteilen, was Du eigentlich machen willst. Irgendwie habe ich das Gefuehl, dass das auch einfacher geht.

    So long

    --
    Es ist dem Untertanen untersagt, den Maßstab seiner beschränkten Einsicht an die Handlungen der Obrigkeit anzulegen.
        -- Kurfürst Friedrich Wilhelm von Brandenburg

    1. hallo,

      Du haeltst es fuer naheliegend, das ein beliebiges Array eine Funktion in der Art "gib mir die Nummer des Bildes, ueber dem der Mauszeiger gerade ist" vorhaelt? Phantasie hast Du ja schon... ;-)"

      Die Aussage über meine Phantasie nehm ich mal zur Kenntnis  - und betrachte nämliche in für mich lobender Weise ;-))...

      Was Du machen kannst: Nimm das Image-Objekt, um das es geht und gehe das fragliche Array Element fuer Element durch und vergleiche jeweils das Element mit dem Bildobjekt, ob es dasselbe ist. Nur wie kriegst Du das Image-Objekt? Wenn Du den onmouseover-Handler fuer das Bild selbst gesetzt hast, dann zeigt 'this' auf eben dieses Objekt (du musst also this mit jedem Arrayelement vergleichen). Aber meistens setzt man den onmouseover-Handler fuer einen Link, der das Bild umgibt, und dann zeigt this nicht mehr auf das Bild, sondern auf den Link. Tja, da hast Du schlechte Karten. Vielleicht kriegst Du das mit den modernen DOM-Methoden irgendwie hin, keine Ahnung. Ich schaetze, Du solltest uns besser mitteilen, was Du eigentlich machen willst. Irgendwie habe ich das Gefuehl, dass das auch einfacher geht.

      Hmm, es war eher ein prinzipielle Frage. Das Problem hab ich dadurch gelöst, dass ich die Länge des Bildarrays bestimmt hab und dann mit einer Schleife bis zur letzten Nummer hochgezählt habe. (Es ging bei den Bildern um einen Art "Domino-Effekt", das nächstfolgende Bild sollte sich ändern) das war auch nicht weiter schwer, nur hätte mich prinzipiell eben genau das interessiert, ob das in Frage befindliche Bild "weiß", welche Position es in einem größeren Verbund hat. Wie eben das Array selbst auch von seiner Größe "weiß" mit anzahl=window.document.images.length;

      Vielleicht war diese Überlegung phantastisch, weil ja dann das Bild von allen anderen (wenigstens den vorhergehenden Bildern) wissen müsste.

      Danke trotzdem

      franz