[gelöst] OnClick. Event. SlideShow

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [gelöst] OnClick. Event. SlideShow

    Hallo!

    Ich habe folgende Situation.

    ich habe mehrere <span></span> Container.
    Eindeutiger Name:
    id='linked_i
    Dabei ist i fortlaufend.

    Dann habe ich in diesem Container jeweils ein
    <img /> -Tag.
    dieser auch mit einer ID.

    Ich tausche nun mit einer Funktion die Bilder aus. Klappt.
    Nur will ich die Function aus span automatisch mit ändern.
    Der Code:

    HTML-Code:
    function Right()
    {
      var zaehler = 1;
      if(pic_stand < (pic_num-6))
      {
      pic_stand++;
      for (var lfd_nr = pic_stand+1; lfd_nr <= pic_stand+6; lfd_nr++)
      {
      document.getElementById('bild_'+zaehler).src = thumb[lfd_nr].src;
      functions = 'function onclick(event) { return Show('+lfd_nr+'); } ';
      document.getElementById('linked_'+zaehler).onclick = functions;
      zaehler++;
      }
      }
    }
    Leider klappt das nicht...
    Beachte: Dumm ist, wer Dummes tut.

  • #2
    Hallo,

    deine Funktion ist keine, sondern ein String. Einem onclick Event kann man aber keinen String zuweisen. Nimm einfach die Anführungszeichen weg (alle 4 und die +-Zeichen) und schreib ein "var" vor functions, damit du dir nicht den globalen Scope zuspammst und dadurch komische Seiteneffekte riskierst.

    Woher pic_stand kommt, kann ich nur vermuten: global definiert? Wenn nicht, ist das die zweite Ursache des Fehlers.

    Ergänzung: da es in einer Schleife stattfindet, müsstest du noch eine zusätzliche Closure drumherum bauen, sonst wird nur die letzte lfd_nr zugewiesen:

    Code:
    function Right() {
    	var zaehler = 1;
    	if(pic_stand < (pic_num-6)) 	{
    		pic_stand++;
    		for (var lfd_nr = pic_stand+1; lfd_nr <= pic_stand+6; lfd_nr++) {
    			(function (pNr) {
    				document.getElementById('bild_'+zaehler).src = thumb[pNr].src;
    				document.getElementById('linked_'+zaehler).onclick = function () {
    					return Show(pNr)
    				};
    				zaehler++;
    			})(lfd_nr);
    		}
    	}
    }
    Gruß,

    Amica
    Zuletzt geändert von AmicaNoctis; 04.11.2009, 21:30.
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      ja

      pic_stand ist global.

      habe das nun mal geändert.

      HTML-Code:
      function Right()
      {
        var zaehler = 1;
        if(pic_stand < (pic_num-6))
        {
        pic_stand++;
        for (var lfd_nr = pic_stand+1; lfd_nr <= pic_stand+6; lfd_nr++)
        {
        document.getElementById('bild_'+zaehler).src = thumb[lfd_nr].src;
        alert(' VORHER: '+document.getElementById('linked_'+zaehler).onclick);
        var functions = function onclick(event) { return Show(lfd_nr); } ;
        document.getElementById('linked_'+zaehler).onclick = functions;
        alert('NACHHER: '+document.getElementById('linked_'+zaehler).onclick);
        zaehler++;
        }
        }
      }
      Nun passiert folgendes.
      Alert Box:
      Code:
      VORHER: function onclick(event) {
          Show(1);
      }
      Danach.
      Code:
      NACHHER: function onclick(event) {
          return Show(lfd_nr);
      }
      Müsste dann anstatt lfd_nr eine Zahl dastehen?
      Beachte: Dumm ist, wer Dummes tut.

      Kommentar


      • #4
        Ich hatte meinen Beitrag schon geändert, hast du das übersehen?
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Wahnsinn......

          Danke Danke Danke...

          nun muss ich das ganze nur noch einmla für die gegenseite anpassen!

          danke, 1000 Dank!
          Beachte: Dumm ist, wer Dummes tut.

          Kommentar


          • #6
            um das ganze zu verstehen.

            wo kommt denn pNr her? bzw. wie gibst du die Variabel vor?
            Beachte: Dumm ist, wer Dummes tut.

            Kommentar


            • #7
              So:
              Angehängte Dateien
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                Danke. nun wird einiges etwas klarer.

                Schönen Abend noch, und nochmals Danke!
                Beachte: Dumm ist, wer Dummes tut.

                Kommentar


                • #9
                  es wäre sehr schön wenn Ihr eure Helferlein auch bewerten würdet

                  php-Entwicklung | ebiz-consult.de
                  PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
                  die PHP Marktplatz-Software | ebiz-trader.de

                  Kommentar


                  • #10
                    ...erledigt...
                    Beachte: Dumm ist, wer Dummes tut.

                    Kommentar

                    Lädt...
                    X