Autor Zpráva
pavelrejha
Profil
Zdravím,
neporadil by mi prosím, někdo s úpravou scriptu viz níže? Potřebuji, aby se při kliknutí na obrázek div1 schoval a zobrazil div2 a obráceně. Mnohokrát děkuji za jakoukoliv pomoc!

<script type="text/javascript">
function schovzobraz() {
var div = document.getElementById("panel").style.display;
if(div == 'inline') {
document.getElementById("panel").style.display="none";
} else {
document.getElementById("panel").style.display="inline";
}
}
</script>

<img src="x.png" onclick="schovzobraz()">

<div style="display:inline" id="panel">div 1</div>
<div style="display:none" id="panel">div 2</div>
Fisir
Profil
Reaguji na pavelrejhu:
function schovzobraz(){
    var div = [document.getElementById('panel1'), document.getElementById('panel2')];
    if(div[0].style.display === 'inline'){
        div[0].style.display = 'none';
        div[1].style.display = 'inline';
    } else {
        div[0].style.display = 'inline';
        div[1].style.display = 'none';
    }
}
<div style="display:inline" id="panel1">div 1</div> 
<div style="display:none" id="panel2">div 2</div>

Na stránce se může určité id vyskytovat pouze jednou.
Joker
Profil
pavelrejha:
Tak v první řadě ty prvky musejí mít různá id-čka.
Který z nich by takhle mělo document.getElementById zaměřit?

Dál pokud se má jeden skrýt a druhý zobrazit, musí se v tom skriptu -překvapivě- jeden skrýt a druhý zobrazit.

Dále bych u display raději testoval "none" (protože to je jediná „skrytá“ hodnota display, zatímco těch „zobrazených“ je víc).

A je nějaký důvod dělat <div> s display:inline a nedat tam rovnou <span> (což je v podstatě právě řádková obdoba pro <div>)?
pavelrejha
Profil
Vážený pane Fisir, pozorně se podívejte na své ruce... Nejsou ze zlata? Jsou! Děkuji :o)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: