Autor Zpráva
-
Profil *
Mam takovy maly problem. Mam takovyhle kod:
onMouseOver="if (this.style.top >= 200) {if (this.style.top <= 300) {this.style.top = 1000;}}"

A to je ten problem. Ikdyz je ten dany objekt (tedy ma) top: treba 250px;, porad to nejde. Nevite jak to lze opravit?
bohyn
Profil
Chybi ti tam jednotky, tedy "1000px".
-
Profil *
Jo diki. Ale px je zapotreby i u ... >= '200px' ... a ... >= '300px' ...
Sem si porad myslel, ze pri porovnavani cisel nesmi byt zadne pismeno...
Měsíček
Profil
Reaguji na pomlčku:

"Jo diki. Ale px je zapotreby i u ... >= '200px' ... a ... >= '300px' ... "

To kolega bohyn moc dobře ví, ale proč by jsme ti to měli celé psát, stačí malé nakopnutí ne? :-)

"Sem si porad myslel, ze pri porovnavani cisel nesmi byt zadne pismeno..."

Tak příště nemysli a testuj ;-) ..
<script type="text/javascript">
  var a = "5px", b = "4px";
    alert((a < b) ? "A je menší" : "B je menší"); // B je menší
</script>
los
Profil *
Pozor, v takom prípade vyjde, že "5px" je viac ako "40px", pretože porovnávaš reťazce.

Pri porovnávaní čísel nemajú jednotky čo hľadať. Ak má prvok nastavený style.top, tak tam bude reťazec aj s jednotkami. Tých sa zbavíš napr. použitím funkcie parseInt:
onmouseover="if (parseInt(this.style.top) >= 200 && parseInt(this.style.top) <= 300) this.style.top = '1000px'"
(pozn.: parseInt má aj druhý parameter, ale ak nebudeš do this.style.top dávať nezvyčajné hodnoty, tak ho ani netreba)

Možno by v tvojom prípade bolo lepšie použiť na zistenie pozície prvku this.offsetTop (prípadne spolu s this.offsetParent). A možno nie.
Chamurappi
Profil
Reaguji na pomlčku:
Pozor na to, že v this.style.top je hodnota vlastnosti top z atributu style. Deklaruješ-li souřadnici v nějakém stylopisu, nelze ji tímto způsobem přečíst a pak tě bude zajímat spíš již zmíněný offsetTop (ten vrací vždy číslo bez „px“).


Reaguji na losa:
ak nebudeš do this.style.top dávať nezvyčajné hodnoty
Prohlížeč nastavenou hodnotu normalizuje, takže i kdyby zapsal this.style.top = "010px", při čtení dostane „10px“. Druhý argument tudíž není potřeba nikdy.

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