Autor Zpráva
Nich
Profil
Nevím jestli je nějaký cyklus v javascriptu na to co potřebuju, ale žádnej sem nenašel. Potřebuji, aby se spustil effect fadeOut() na x objektech. Na to sem si udělal v JS funkci. Ale z nějakého důvodu, nefunguje (-;

   
//Tohle je kód normálně z index.php
<?php 
         //Zjistí se počet objektů pro smazání 
              function pocett($directory='.')
                {
                 return count(glob($directory."/images/show_*.jpg"));
                }
              $slides = pocett();			 
?>	
    <script type="text/javascript">
         var count_slides = <?php echo $slides; ?>;
    </script> 


//A tohle je kód z externího .js souboru 
        //Tady je teda ta moje výše zmíněná funkce
      function erase() {
	      var eraser = 1;
	      function erase_2() {		  
	          if(eraser <= count_slides) {
		        $(document).ready(function(){
		            $("#show_" + (eraser)).fadeOut('fast');
		        });
	          eraser++;
	          erase_2();
	          }
	          if(eraser > count_slides) { return; }
	      }  
       }

//No a potom si tuhle fci volám ve scriptu (zvyrazněno tučně), ale nevymaže to žádnej z objektů:

var current_slide = 1;

$(document).ready(function(){
    $("#doprava").click(function() {
        $("#show").animate({
          width: "25%",
    	  }, 1200, function() {
			    var url = "url('/test/sezako/new/images/show_"+(current_slide + 1)+".jpg')";
				$("#show").css('background-image', url);
				erase();
        });
    });
});    	 	
Chamurappi
Profil
Reaguji na Nicha:
Na cykly se používá for (nebo while). Tvůj pokus o rekurzi je ošklivý a nefunguje zejména proto, že ho nikde nenastartováváš — ve funkci erase nikde nevoláš erase_2.
Nich
Profil
Chamurappi:

Tak sem to opravil...

var eraser = 1;
	  function erase() {		  
		if(eraser > count_slides) { 
		    eraser = 1; 
		    return; 
		}
		if(eraser <= count_slides) {
		
		        $("#show_" + (eraser)).fadeOut('fast');
		 
	    eraser++;
		erase();
		}		
	  } 


Dělal sem to rekurzivně no, ale příště už použiju ty cykly... nikde sem to právě nemohl najít, moc dík.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: