|
 | | |
| Autor | Správa |
gamelaster
 Užívateľ
 Založený: 27.01.2011 Príspevky: 73
 | Zaslal: Št 27.10.11 19:11 |   |
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> |
|
| |
  |
 |
Ďuri
 Administrátor
 Založený: 11.08.2007 Príspevky: 3785 Bydlisko: Brno
 | Zaslal: Št 27.10.11 19:30 |   |
| 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. |
| |
    |
 |
gamelaster
 Užívateľ
 Založený: 27.01.2011 Príspevky: 73
 | Zaslal: Pi 28.10.11 11:32 |   |
logiku chapem, mne vsetko vychadaza dobre, zatvorky mam dobre(kontrolovane Notepad++) no ja nwm co dalej  |
| |
  |
 |
chrono
 Skúsený užívateľ
 Založený: 13.11.2007 Príspevky: 808
 | Zaslal: Pi 28.10.11 11:41 |   |
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ť). |
| |
  |
 |
|
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.
|
| |