Cześć,
dzisiaj zacząłem się uczyć JS i próbuję sobie teraz zrobić rozwijane menu. W pewnym sensie zrobiłem to, jednak nie rozumiem dlaczego pewien kod, który mi się wydaje, że powinien działać, nie działa. Działający kod osiągnąłem metodą prób i błędów. W kodzie który podam jest bezsensownie wstawiona jedna funkcja w drugiej, proszę nie zwracać na to uwagi, ponieważ później chcę to rozwinąć dlatego tak dałem, jednak nie w tym problem. Kody są wywoływane przy onClick np. onClick="show(1)". Oto kody:
Działający (nie ma ograniczenia do kiedy ma się rozwinąć, ale to nieważne w tym momencie):
<script>
var cH = 0;
function show( n ) {
unwrap( n );
}
function unwrap( n ) {
cH += 3;
var div = document.getElementById( "SUB" ).getElementsByTagName( "div" );
div[n].style.height = cH + "px";
setTimeout( "unwrap(" + n + ")", 1 );
}
</script>
Nie działający (dlaczego on nie działa? Dokładnie to zwiększa mi wysokość o 3 ale tylko raz, tak jakby setTimeout nie chciał się wykonać):
<script>
var cH = 0;
function show( n ) {
var div = document.getElementById( "SUB" ).getElementsByTagName( "div" );
unwrap( div[n] );
}
function unwrap( div ) {
cH += 3;
div.style.height = cH + "px";
setTimeout( "unwrap(" + div + ")", 1 );
}
</script>
Pozdrawiam i dziękuję za pomoc.