[JavaScript] Methode-aanroep meegeven als argument

Pagina: 1
Acties:

  • Croccifixio
  • Registratie: Maart 2002
  • Laatst online: 01-04-2025
Ik probeer als tweede argument bij een methode-aanroep een andere methode-aanroep mee te geven:
code:
1
scrollDiv(windowCenter, "magnifyImage(eval(imgWidthMax), eval(imgHeightMax))");

Dit is op de volgende manier bedoeld: scrollDiv scrollt de div naar het midden van het scherm. Als hij het midden van het scherm heeft bereikt, dan moet het image vergroot worden.
Je vraagt je natuurlijk af, waarom ik dat niet in scrollDiv definieer. Dat is om de volgende reden: Ik wil bij elke afzonderlijke aanroep van scrollDiv kunnen opgeven wat er moet gebeuren als hij klaar is. In dit geval is het het vergroten van het image, maar in een ander geval wil ik de div, na het scrollen naar het eind van het scherm, laten verdwijnen. Dus is het wel handig dat ik in dat geval geen nieuwe methode hoef te schrijven, maar de scrollDiv kan hergebruiken.
Het probleem is dat het tweede argument (de methode-aanroep) direct wordt uitgevoerd bij het aanroepen van scrollDiv. Hij gaat dus eerst vergroten en dan pas scrollDiv verder uitvoeren.

Verwijderd

Ik begrijp niet waarom je een functie binnen die andere functie wilt aanroepen. Dat heeft dan toch geen nut?

Bovendien zijn eval regels een teken dat je niet echt optimaal gebruik maakt van javascript. Ik had het volgende in gedachten:
code:
1
2
scrollDiv(windowCenter);
magnifyImage(imgWidthMax, imgHeightMax);

As simple as that, maar waarom zou je het anders doen?

  • Croccifixio
  • Registratie: Maart 2002
  • Laatst online: 01-04-2025
Op maandag 01 april 2002 12:19 schreef Cheatah het volgende:
Ik begrijp niet waarom je een functie binnen die andere functie wilt aanroepen. Dat heeft dan toch geen nut?

Bovendien zijn eval regels een teken dat je niet echt optimaal gebruik maakt van javascript. Ik had het volgende in gedachten:
code:
1
2
scrollDiv(windowCenter);
magnifyImage(imgWidthMax, imgHeightMax);

As simple as that, maar waarom zou je het anders doen?
Ik heb het gemaakt zoals je aangaf, maar hij doet niet helemaal wat de bedoeling is.
Het is de bedoeling dat de div met daarin een img van links naar het midden van de pagina scollt. Daarna wordt het img opgeblazen en blijft even zo staan. Hierna wordt het img verkleind tot de originele grootte en tot slot zal de div met daarin het img naar het eind van het scherm scrollen en verdwijnen.

Het scrollen heb ik geïmplementeerd mbv settimeout's. Daardoor loopt jouw oplossing in de soep. Hij begint namelijk al aan magnifyImage terwijl het scrollen nog bezig is. Deze manier gebruik ik omdat ik de snelheid waarmee de img's scrollen te kunnen aanpassen. Heb je misschien een alternatief voor de settimeout's?