IT NEWS PC REVUE PC FORUM FreeBSDInternet time: @603
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

Keď klient slúži

Globálny líder v oblasti tenkých klientov prichádza na Slovensko. www.ts.avnet.com

Dali sme si poradiť

Naše peniaze sa zhodnocujú. A vám? www.partnersgroup.sk

Zbavte sa viazanosti

Za Samsung Galaxy Ace so zlatým O2 Paušálom zaplatíte teraz 12 €! pausal.o2.sk

PORFIX: Stavebný materiál

Materiál pre váš nový dom. Unikátne stavebné výrobky Porfix. www.Porfix.sk

Prejdite do O2

s platbou na faktúru a získajte bonus 50€. Len v e-shope. www.o2.sk

Podmienka nejde

Zaslať odpoveď
AutorSpráva
gamelaster
Užívateľ
Užívateľ

Založený: 27.01.2011
Príspevky: 73

PríspevokZaslal: Št 27.10.11 19:11Odpovedať s citátomNávrat hore

Hi Programers,

mam problem, mam tlacitko obrana. Ked nan kliknem premenna act sa zmeni na ano, ale ked to chcem dat zase na nie tak ze kliknem, uz to nejde. Kod:

kód:
<script>
var act = "nie";
function branit()
{
   if (act == "ano") {
      act = "nie";
      document.getElementById('obrazok1').src = 'sword1.png';
   }

   if (act == "nie") {
      act = "ano";
      document.getElementById('obrazok1').src = 'stit.png';
}

}
function spet() {
document.getElementById('obrazok1').src = 'sword1.png';
}
function lol(cisielko) {
if (act == "ano")
{

}
if (act == "nie")
{
   document.getElementById('obrazok1').src = 'sword' + cisielko + '.png';
   var t = setTimeout("spet();",1000);
}
}

function stale() {
document.getElementById('asdf').innerHTML = act;
setTimeout("stale();",10);
}
</script>

<body onLoad="document.getElementById('obrazok1').src = 'sword1.png'; setTimeout('stale();',10);">
<img id="obrazok1" src="sword3.png"><br>
<input type="submit" value="Zautoc" onClick="lol(3);"><span id="asdf"></span><input type="submit" id="obrana" value="Branit" onClick="branit();">
</body>
Zobraziť informácie o autoroviOdoslať súkromnú správu
Ďuri
Administrátor
Administrátor

Založený: 11.08.2007
Príspevky: 3785
Bydlisko: Brno

PríspevokZaslal: Št 27.10.11 19:30Odpovedať s citátomNávrat hore

gamelaster napísal:
kód:
   if (act == "ano") {
      act = "nie";
      document.getElementById('obrazok1').src = 'sword1.png';
   }

   if (act == "nie") {
      act = "ano";
      document.getElementById('obrazok1').src = 'stit.png';
}
Uz tu vidim, ze ak plati act == "ano", tak sa vykona aj jedna ta vetva, aj druha, a teda obrazok bude mat po zavolani tejto fcie src="stit.png", to je zrejme nechcene. Vidis preco? Odporucam rozmyslat, ako sa ten kod bude spravat pri akych vstupoch; toto nie je o ovladani Javascriptu, ale o elementarnom analytickom mysleni.
Dalej sa ani nejdem zamyslat, co ma ten kod robit. Oprav si logiku kodu.
Zobraziť informácie o autoroviOdoslať súkromnú správuJabberSkype
gamelaster
Užívateľ
Užívateľ

Založený: 27.01.2011
Príspevky: 73

PríspevokZaslal: Pi 28.10.11 11:32Odpovedať s citátomNávrat hore

logiku chapem, mne vsetko vychadaza dobre, zatvorky mam dobre(kontrolovane Notepad++) no ja nwm co dalej
Zobraziť informácie o autoroviOdoslať súkromnú správu
chrono
Skúsený užívateľ
Skúsený užívateľ

Založený: 13.11.2007
Príspevky: 808

PríspevokZaslal: Pi 28.10.11 11:41Odpovedať s citátomNávrat hore

To, že zátvorky sa vyskytujú v pároch tak, ako treba, ale neznamená, že to bude robiť to, čo chceš (javascript totiž nevie čítať myšlienky programátora).

Ak v act môže byť len "ano" a "nie", tak namiesto:
kód:
if (act == "ano") {
  ...
}

if (act == "nie") {
  ...
}
tam môžeš mať
kód:
if (act == "ano") {
  ...
} else {
  ...
}
(a samozrejme by ešte lepšie bolo, ak by act obsahovalo len true alebo false; je to rýchlejšie ako porovnávanie reťazca)

PS: Celkom dobré by bolo, keby si si pozrel nejaké návody pre javascript, ktoré nemajú 10+ rokov. (všetky tie setTimeout("funkcia();",10); onClick="nieco"; sa už nepoužívajú a sú k tomu vhodnejšie alternatívy)

PPS: Nepozeral som, čo ti to vlastne robí, takže lepšie riešenie ti neporadím (a aj keby som sa na to pozrel, aj tak by som pravdepodobne nezistil, čo presne tam chceš dosiahnuť).
Zobraziť informácie o autoroviOdoslať súkromnú správu
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
Nemôžete odpovedať na témy v tomto fóre.
Nemôžete upravovať svoje príspevky v tomto fóre.
Nemôžete mazať svoje príspevky v tomto fóre.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF

SEO - optimalizácia pre vyhľadávače

Freebsd