Autor Zpráva
etruska
Profil *
Dobrý den, mám kód, který změní display elementu z none na block a nastaví souřadnice elementu podle souřadnic objektu, na který se klikne. Když je dokument v html 4.0 tak vše funguje, ale jakmile nastavím doctype na xhtml tak už přesouvání elementu nefunguje. Ne že bych na XHTML trval za každou cenu, ale nechce se mi přepisovat soubory, ve kterých skript použiji. Nenašlo by se nějaké řešení? Děkuji za odpověď.
Kód:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>Změna pozice elementu</title>
</head>
<body>
<div id="blok1" style="display:none; position:absolute;">obsah divu</div>
<script type="text/javascript">
function paleta(element) {
var x=0, y=0; var block = document.getElementById("blok1");
var el = document.getElementById(element);
while (el) {
x += el.offsetLeft - el.scrollLeft;
y += el.offsetTop - el.scrollTop;
el = el.offsetParent;
}
block.style.left = x;
block.style.top = y;
skryj=document.getElementById("blok1").style;
skryj.display='block';
}
</script>
<h3 id="test1" onclick="paleta('test1')">TEST</h3>
<h3 id="test2" onclick="paleta('test2')">TEST 2</h3>
</body>
</html>

Chamurappi
Profil
Reaguji na etrusku:
<!doctype> neurčuje použitý jazyk, užíváš stále HTML. Lomítka v prázdných značkách si prohlížeče odmýšlí jakožto syntaktické chyby.
Rozdíl je mezi standardním a quirk režimem. Zřejmě máš ve své pseudo-XHTML stránce na prvním řádku <!doctype> odvolávající se na XHTML, takže užíváš standardní režim. Zde uvedený kód deklaruje HTML 4.01 bez URL, takže jede v quirku.

V quirku mají prohlížeče tolerantnější CSS parser, takže nevyžadují jednotky u pixelových rozměrů.
  block.style.left = x + "px";

block.style.top = y + "px";
Možná tam bude ještě nějaký problém — jestli ano, ukaž prosím živou ukázku.
etruska
Profil *
Chamurappi
<!doctype> neurčuje použitý jazyk, užíváš stále HTML
aha na to jsem zapomněl
Takže za ten rozdíl ve funkčnosti nemůže moje pseudo-XHTML, ale tolerantní quirk, jestli sem to dobře pochopil.
Jinak děkuji, bylo to v těch zapomenutých pixelech, celkem hloupá chyba.

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: