Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
[JavaScript] - Pytanie początkującej
#1
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?
Odpowiedz
#2
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);
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Czy ilość zmiennych w javascript, jako języku interpretowanym, ma znaczenie? Jakie gburhiphop 22 22,566 09-09-2016, 21:09
Ostatni post: Ribana
Toungue Problem z nie działającym javascript Radian 4 4,859 20-03-2015, 16:31
Ostatni post: Radian
  JavaScript podstawy bryndzyk 5 4,226 18-05-2013, 21:17
Ostatni post: ferrante
  JavaScript Gmaps Api Rysowanie Squezzer 0 2,080 16-05-2013, 18:18
Ostatni post: Squezzer
  itegracja lightboxa z "like button" z JavaScript SDK sakkada 4 4,801 04-01-2013, 01:39
Ostatni post: sakkada

Skocz do:


Użytkownicy przeglądający ten wątek:
Sponsorzy i przyjaciele
SeoHost.pl