Ergebnis 1 bis 7 von 7

Thema: Don't make functions within a loop.

  1. #1
    Loop
    Gast

    Standard Don't make functions within a loop.

    Hi at all

    bin grad dabei nen JavaScrip zu optimieren mit hilfe des JSLint und verzweifle grad an an einigen Sachen.

    Hier in Zeile 74
    Code:
    sfHover = function() {
    	var sfEls = document.getElementById("menu").getElementsByTagName("LI");
    	for (var i=0; i<sfEls.length; i++) {
    		sfEls[i].onmouseover=function() {
    			this.className+=" sfhover";
    			
    		
    		sfEls[i].onmouseout=function() {
    		this.className-=" sfhover";
    		
    	/*	   var suche = RegExp(" sfhover\\b");
    			suche == "";
    			this.className = this.className.suche;*/
    	  };
    	}; //Zeile 74
      }
    };
    und hier in zeile 90
    Code:
    Over = function() {
    	var sfEls = document.getElementById("menu").getElementsByTagName("UL");
    	for (var i=0; i<sfEls.length; i++) 
    	{
    		sfEls[i].onmouseover=function() {
    			this.className+=" over";
    							
    		
    		sfEls[i].onmouseout=function() {
    	};       this.className = "bild";		
    	  }; //Zeile 90
    	}
      };
    zeigt der mir: Don't make functions within a loop.

    Währe cool wenn mir jemand hierbei jemand helfen könnte :/
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Don't make functions within a loop.

    Ist doch ganz einfach: Mach globale Funktionen draus und gib ihnen Namen.
    Es macht auch keinen Sinn, onmouseout erst zu setzen, wenn onmouseover ausgelöst worden ist. Das macht der schon von selbst richtig. Also einfach zwei unabhängige Funktionen für onmouseout und onmouseover und in der Schleife machst du dann so etwas wie:
    Code:
    sfEls[i].onmouseover = funktion1;
    sfEls[i].onmouseout = funktion2;
    Viele liebe Grüße
    The User

  3. #3
    der/die Göttliche Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Don't make functions within a loop.

    An sich ist es doch auch sehr nett, dass er dich den Code nicht ausführen lässt.
    Sonst ballerst du den Client ja mit nem Haufen anonymen Funktionen zu, die alle das selbe machen

  4. #4
    Forum Guru Avatar von synaptic
    Registriert seit
    20.06.2007
    Ort
    Butzbach-Wiesental
    Beiträge
    10.901
    Danke
    45
    Bekam 48 mal "Danke" in 46 Postings
    Blog-Einträge
    1

    Standard AW: Don't make functions within a loop.

    mit jquery is des was du haben willst auch ganz fix gemacht..
    siehe: each(), toggleClass()

    edit: each brauchts da noch nichma..
    es reicht addClass, removeClass oder eben toggleClass
    Geändert von synaptic (09.03.2010 um 19:29 Uhr)
    KEIN support via pn, email, messenger oder falsch geposteten threads
    Futter für deine Schnuffelzwerge gibts bei den Schnuffelzwergen TOP Qualität, also klicken und kaufen

  5. #5
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Don't make functions within a loop.

    @Synaptic
    So lang ist der Code doch nun wirklich nicht, den er da so geschrieben hat.

  6. #6
    Forum Guru Avatar von synaptic
    Registriert seit
    20.06.2007
    Ort
    Butzbach-Wiesental
    Beiträge
    10.901
    Danke
    45
    Bekam 48 mal "Danke" in 46 Postings
    Blog-Einträge
    1

    Standard AW: Don't make functions within a loop.

    ich hätt des zwar so gemacht:

    html:
    HTML-Code:
    <div id="menu">
        <ul>
            <li class="menli">blubb</li>
            <li class="menli">blubb</li>
            <li class="menli">blubb</li>
            <li class="menli">blubb</li>
        </ul>
    </div>
    css:
    Code:
    .menli{
        width:200px;
        border: 1px solid black;
        background:red;
        color: black;
        padding-left:20px;
    }
    .active{
        width:210px;
        border: 2px solid red;
        background:black;
        color: white;
    }
    jquery version1:
    Code:
    $("#menu").ready(function(){
        $("li.menli").mouseover(function(){
            $(this).toggleClass("active");
        });
        $("li.menli").mouseout(function(){
            $(this).toggleClass("active");
        });
    });
    oder eben mit addClass und removeClass
    jquery version2:
    Code:
    $("#menu").ready(function(){
        $("li.menli").mouseover(function(){
            $(this).addClass("active");
        });
        $("li.menli").mouseout(function(){
            $(this).removeClass("active");
        });
    });
    aber ich sehe ein, dass sein code oben unwesentlich mehr geschreibse wäre...
    aber ok ich geb mich geschlagen... macht des so wie oben und wenns nich fruchtet viel erfolg bei der fehlersuche...
    KEIN support via pn, email, messenger oder falsch geposteten threads
    Futter für deine Schnuffelzwerge gibts bei den Schnuffelzwergen TOP Qualität, also klicken und kaufen

  7. #7
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Don't make functions within a loop.

    Ah, aber auch mal interessant zu sehen, wie so etwas in jQuery aussieht.

Ähnliche Themen

  1. Evga X58 SLI LE F6, F3 Reboot Loop
    Von Macrosdesign im Forum Computer - Internet Forum
    Antworten: 5
    Letzter Beitrag: 08.01.2010, 14:30
  2. World Racing League - We make the champions!
    Von WRL2009 im Forum Promotion - SEO - Suchmaschine (Google & Co) – Mitarbeiter & Linkpartnersuche
    Antworten: 0
    Letzter Beitrag: 08.09.2009, 11:45
  3. Was bedeutet make error 2?
    Von LinuxMan im Forum Computer - Internet Forum
    Antworten: 4
    Letzter Beitrag: 26.06.2008, 17:24
  4. ICQ 6 WHERE ARE THE FUNCTIONS?
    Von Gast im Forum Computer - Internet Forum
    Antworten: 1
    Letzter Beitrag: 05.06.2007, 22:23
  5. LOOP
    Von Barcelino im Forum Flash Forum
    Antworten: 1
    Letzter Beitrag: 18.01.2007, 15:15

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •