Autor Zpráva
m
Profil *
Ahoj, mam nasledujici kod:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs"> 
 
<head> 
  <meta http-equiv="content-language" content="cs" /> 
  <meta name="language" content="cs" /> 
  <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
 
	<script type="text/javascript"> 
		function zobrazit(i){
			if (i.style.display=='none'){
				i.style.display='';
			}
			else
				i.style.display='none'
			}    
	</script> 
 
</head>  
<body> 
 
<h1 onClick="zobrazit(tux)">Zobrazit / skryt</h1> 
 
<p id="tux">dlouhy odstavec textu</p> 
 
<script type="text/javascript"> 
	document.getElementById('tux').style.display = "none"; 
</script>  
</body>  
</html> 

Ten funguje bez problemu, ale kdyz ho upravim, tak to nejde. Asi to bude blbost, ale nevite co stim?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs"> 
 
<head> 
  <meta http-equiv="content-language" content="cs" /> 
  <meta name="language" content="cs" /> 
  <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
 
	<script type="text/javascript"> 
 
		function on-off(id, zapnout-vypnout){
			if (zapnout-vypnout=='1'){
				id.style.display='';
			}
			else
				id.style.display='none'
			}   
 
		function zobrazit(i){
			if (i.style.display=='none'){
				i.style.display='';
			}
			else
				i.style.display='none'
			}    
	</script> 
 
</head>  
<body> 
 
<h1 onClick="on-off(tux, 1)">Zobrazit</h1> 
<h1 onClick="on-off(tux, 0)">Skryt</h1> 
<h1 onClick="zobrazit(tux)">Zobrazit / skryt</h1> 
 
<p id="tux">dlouhy odstavec textu</p> 
 
<script type="text/javascript"> 
	document.getElementById('tux').style.display = "none"; 
</script> 
</body>  
</html> 
Chamurappi
Profil
Reaguji na m:
Ten funguje bez problemu
Ve všech prohlížečích? Pochybuji.
Až ti začne vadit, že to někde nefunguje, přepiš všechny tux v onclick na document.getElementById('tux').

kdyz ho upravim, tak to nejde
Hm, zapnout mínus vypnout… kolik myslíš, že to vyjde, když to JS zkusí spočítat? :-)
Totéž u on mínus off. Do názvů proměnných a funkcí nedávej matematické operátory a pojede to.
peta
Profil
zapnout-vypnout, on-off
Pro nazvy funkci a promennych jsou v JS i CSS povolene znaky azAZ09_ a musi zacinat pismenem.
on-off = A - B // jestli to napises s mezerami nebo ne, na tom nesejde

Mas editor s obarvovanim syntaxe?

<h1 onClick="on-off(tux, 1)">Zobrazit</h1> 
<h1 onClick="on-off(tux, 0)">Skryt</h1> 

H1 by mel byt jeden jediny.

<h1 onClick="zobrazit(tux)">Zobrazit / skryt</h1> 
    document.getElementById('tux').style.display = "none"; 

Proc nekde pouzivat tux a jinde getElementById('tux') ? Priklanim se k Chamurappi, pouzij getElementById.

Zkus se obcas podivat, co vypisuje chybova konzole pri spusteni JS. Ve FF je to vyborny nastroj, pise i radek, kde chyba nastala.

Chamurappi
Reklamace, tady to melo asi obarvit jinak syntaxi, provedu test s mezerami...
if (zapnout-vypnout=='1')
if (zapnout - vypnout=='1')

Aha, test nevysel, ten obarvovac to asi neumi :)
Chamurappi
Profil
Reaguji na petu:
nazvy funkci a promennych jsou v JS i CSS povolene znaky azAZ09_ a musi zacinat pismenem
Ta dovolená škála znaků je širší, fungují třeba i znaky s diakritikou.

H1 by mel byt jeden jediny.
Na počtu nezáleží. Hlavně by v něm ale měl být nadpis a ne popis činnosti, kterou vyvolá kliknutí.

tady to melo asi obarvit jinak syntaxi
Zdejší obarvovač rozpoznává operátor, obaluje ho do <span>u, ale nemá přiřazené žádné styly. Ani mě nenapadá, jaká barva by se k němu hodila — cokoliv tmavého bude nerozeznatelné od té tmavě zelené a cokoliv světlého bude zase příliš zářit. Asi to nechám být. Koukám, že operátory nezvýrazňuje ani Visual Studio, ani Notepad++. Zřejmě se předpokládá, že se člověk dozví o operátorech jiným způsobem než z barvy kódu v editoru.

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: