Autor Zpráva
vojtah22
Profil
Dobrý den,

začínám v JavaScriptu, a tak jsem se snažil udělat si jednoduchý kód na skrytí / zobrazení odstavce. Bohužel mi to nefunguje (nic se nestane) - testováno ve FF a Google Chrome.

    <style>
    h1 {cursor: pointer; cursor: hand; }
   .nevidim {display: none;}
  </style>
  
     <script>   
    function funkce()
    {
      var idecko;
      idecko = document.getElementById("skryvaci");
      var disp;
      disp = idecko.display;
      
      if(disp=="none")
      {
        disp.setAttribute("display", "\ \");
      }
      else
      {
        disp.setAttribute("display", "\ none \");
      }
      
    }  
   </script>
 
  
  <h1 onClick="funkce()">zobrazit / skrýt</h1>
  
  
  
   <div id="skryvaci" class="nevidim">
   skrytý odstavec
   </div>
Medvídek
Profil
vojtah22:
Zkus se inspirovat na tomto příkladu: http://www.jakpsatweb.cz/javascript/priklady/skryvani-odkryvani.html
A poté kouknout, co radí Chamurappi s použitím setAtribute: http://diskuse.jakpsatweb.cz/?action=vthread&forum=8&topic=90307
vojtah22
Profil
Chamurappiho radu jsem aplikoval:
    <style>
    h1 {cursor: pointer; cursor: hand; }
   .nevidim {display: none;}
  </style>
  
     <script>   
    function funkce()
    {
      var idecko;
      idecko = document.getElementById("skryvaci");
      var disp;
      display = idecko.display;
      
      if(display=="none")
      {
        display.display="";
      }
      else
      {
        display.display="none";
      }
      
    }  
   </script>
 
  
  <h1 onclick="funkce()">zobrazit / skrýt</h1>
  
  
  
   <div id="skryvaci" class="nevidim">
   dsfsdfsdfsdfsdf
   </div>


z toho příkladu jsem vycházel, ale nechápu tento řádek:

el.display=(el.display == 'block')?'none':'block';


a tak jsem se ho snažil napsat po svém... podle mě by to mělo fungovat i na principu, který tam píšu já... ne?
Chamurappi
Profil
Reaguji na vojtaha22:
Co to dáváš do proměnné display?
Sir Tom
Profil
vojtah22:
el.display=(el.display == 'block')?'none':'block';

Tento řádek říká: Do proměnné el.display ulož hodnotu, která vznikne po vyhodnocení podmínky (el.display == 'block'). Když podmínka platí, tak ulož hodnotu 'none', když neplatí, tak 'block'.
_es
Profil
vojtah22:
Priame menenie CSS vlastností je cez JS vlastnosť style elementu.
Teda napríklad:
element.style.display = "none";
Lepšie je však v JS meniť CSS triedu elementu:
element.className = "názovTriedy";

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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

0