Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
[JavaScript] - Pytanie początkującej - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: xHTML, CSS, JavaScript (https://www.webmastertalk.pl/forum-xhtml-css-javascript)
+--- Wątek: [JavaScript] - Pytanie początkującej (/thread-javascript-pytanie-poczatkujacej)



[JavaScript] - Pytanie początkującej - anutka - 22-04-2011

Chcę się upewnić, czy dobrze rozumiem działanie kodu...

Kod:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="pl-PL">
<head>
<title>Akapit</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />

<script type="text/javascript">

function Pokaz()
{
    var zmienna = document.getElementById('akapit');
    
    
    if (zmienna.style.margin == "20px")
    {
        zmienna.style.margin = "400px";
    }
    
    if (zmienna.style.margin == "400px")    
    {
        zmienna.style.margin = "20px";
    }
              
}

</script>

</head>
<body>
<div>
<p id="akapit" style="margin: 20px;" onclick="Pokaz();">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Pellentesque metus eros, rutrum at, hendrerit nec, posuere ac.</p>

</div>
</body>
</html>

Kod nie działa.

Po wprowadzeniu zmiennej

Kod:
function Pokaz()
{
    var zmienna = document.getElementById('akapit');
    
    var margines = zmienna.style.margin
    
    if (margines == "20px")
    {
        zmienna.style.margin = "400px";
    }
    
    if (margines == "400px")    
    {
        zmienna.style.margin = "20px";
    }
              
}

W pierwszym kodzie nie działało dlatego, że: na początku było margin: 20px i przy pomocy if zmienia się na margin: 400px, a drugi warunek jest spełniony i dlatego ma 20px, tak?

a w drugim kodzie: tutaj jakoś ciężko mi wytłumaczyć sobie. dzięki nowej utworzonej zmiennej ma możliwość sprawdzenie dwóch warunków?


RE: [JavaScript] - Pytanie początkującej - Kartofelek - 22-04-2011

Nie prawda Smile
Nie działało, bo oba warunki były prawidłowe Smile
Skoro w 1 zmieniałeś na 400 to drugi był prawidłowy. Powinieneś w każdym warunku robić przerwanie funkcji zwracając np false czyli np
if (zmienna.style.margin == "20px")
{
zmienna.style.margin = "400px";
return false;
}

Ale to też nie jest dobrze Smile. Różne przeglądarki różnie mogą zwracać wartość marginesu. Może to być np 400px, a może być 400. Dlatego trzeba to rzutować na wartość liczbową:
parseInt(zmienna.style.margin, 10);