Autor Zpráva
David84711
Profil *
Zdravím,...
Už několik dní přemýšlím, jak bych mohl udělat následující...

Mám vedle sebe tři tabulky.

Údaje v první tabulce:
Výška: x
Hloubka: x

Údaje v druhé t.:
Výška: y
Hloubka: y

Údaje ve třetí t.:
Výška: z
Hloubka: z

Vytvořit tyhle tři tabulky mi problém samozřejmě nedělá. Potřeboval bych ale aby, když najedu například na "výšku" v první tabulce, aby se mi zvýraznili Všechny výšky (v každé tabulce)
Zkoušel jsem pár věcí, ale aby se mi zvýraznili všechny tři, tak to se mi nepovedlo.

Poraďte díky...
Fnesveda
Profil
Zkus si údaje, které chceš zvýrazňovat současně, označit stejnou třídou, a pak pomocí getElementsByClassName jim změnit styl.
Něco jako:
<td class="class23" onmouseover="highlight('class23')">Výška 23</td>
...
<script>
function highlight(classname) {
var elements = document.getElementsByClassName(classname);
for (var i = 0; i < elements.length; i++) {
 elements[i].style.background-color="#FFBB00"
 }
}
</script>
panther
Profil
Fnesveda:
toto řešení s getElementsByClassName nebude fungovat všude.
Fnesveda
Profil
Panther:
Pravda, IE <9 to nezvládne, škoda... Díky za kontrolu.

Pak by byla možnost obejít to přes getElementById, a označit si jednotlivé buňky jako 23_0, 23_1, 23_2 apod. a postupně zvýraznit všechny jednotlivě.

<td id="23_0" onmouseover="highlight('23')">Výška 23</td>
<td id="23_1" onmouseover="highlight('23')">Výška 23</td>
<td id="23_2" onmouseover="highlight('23')">Výška 23</td>
...
<script>
var row_count = 3;
function highlight(groupname) {
for (var i = 0; i < row_count; i++) {
 document.getElementById(groupname+'_'+i).style.background-color="#FFBB00";
 }
}
</script>


Je to sice prasácký, ale fungovat by to mělo.
David84711
Profil *
díky za rady, ale funguje to jen tak na půl. Hodnota se po najetí kurzoru sice zvýrazní. Ale! zvýrazní se jen ta na kterou najedu. Navíc se někdy zvýraznění jakoby zapomene a text zvýrazněný zůstane napořád.
Ugo
Profil *
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<td class="vyska" onmouseover="$('.vyska').css('background','red')">Výška 23</td>


http://jquery.com
hunter_dave
Profil
Přidal jsem ke scriptu Fnesveda onmouseout a upravil pro 3 .. už by se to mělo i vracet a u všech 3.
<td id="23_0" onmouseover="highlight('23')" onmouseout="back('23')">Výška 23</td>
<td id="23_1" onmouseover="highlight('23')" onmouseout="back('23')">Výška 23</td>
<td id="23_2" onmouseover="highlight('23')" onmouseout="back('23')">Výška 23</td>
...
<script>
function highlight(groupname) {
for (var i = 0; i < 3; i++) {
 document.getElementById(groupname+'_'+i).style.backgroundColor="#FFBB00";
 }
}
function back(groupname) {
for (var i = 0; i < 3; i++) {
 document.getElementById(groupname+'_'+i).style.backgroundColor="";
 }
}
</script>
David84711
Profil *
Pořád se mi označí jen jedno
hunter_dave
Profil
ja jsem to zkousel u sebe .. oznaci se mi vsechny .. mas u tech <td> id="23_0" id="23_1" id="23_2"?
hunter_dave
Profil
zkopiruj si tohle ..
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <title></title>
  </head>
  <body>
  <table>
  <tr>
<td id="23_0" onmouseover="highlight('23')" onmouseout="back('23')">Výška 23</td>
<td id="23_1" onmouseover="highlight('23')" onmouseout="back('23')">Výška 23</td>
<td id="23_2" onmouseover="highlight('23')" onmouseout="back('23')">Výška 23</td>
</tr>
</table>
<script>
function highlight(groupname) {
for (var i = 0; i < 3; i++) {
 document.getElementById(groupname+'_'+i).style.backgroundColor="#FFBB00";
 }
}
function back(groupname) {
for (var i = 0; i < 3; i++) {
 document.getElementById(groupname+'_'+i).style.backgroundColor="";
 }
}
</script>
  </body>
</html>

nic na tom nemen a zkus to .. pak neco zmen a zkus to znovu .. pokud to uz nepujde .. rekni co si zmenil a ja ti pomuzu
hunter_dave
Profil
ted sem to vyzkousel v exploreru ve firefoxu v opere a v chromu .. safari bohuzel nemam .. ale ve vsech to funguje
David84711
Profil *
jo tak takhle mě to funguje. Když ale vložím pouze body 9až25 chová se to, jako by to tam nevidělo ten script. Nejsem si jistý ale možná by to mohlo být tím, že tam mám i jiné scripty a on neví který je pro něj důležitý. Ale možná že plácám jen blbosti..
hunter_dave
Profil
ne tím to není .. musíš zkopírovat to <td> i s tabulkou to zaprvé .. a ten scritpt musí být vždy napsaný až za tím co chceš měnit .. to proto že když volaš fci back() nebo highlight tak <td id="23_0"> atd .. už musí být vytvořené.
hunter_dave
Profil
Kdyžtak kdyby sis nevěděl rady tak mi sem dej celý tvoje html i stěma tabulkama a ja ti to upravim tak aby to fungovalo .. a krome barvy pozadí samozřejmě můžeš měnit i barvu písma .. tučnost .. velikost .. cokoliv co se dá nastylovat :)
David84711
Profil *
Kod je trochu delší tak jsem to uložil na web...

http://www.vystava-moo.mysteria.cz/encyklopedie/
Ta tvoje tabulka je hnedka v levém horním boxu nahoře...
hunter_dave
Profil
a ty chces aby u vsech tech letadel se zvyraznovali vysky pokud na jednu z nich najdes?
sory za zpozdeni byl sem pryc
David84711
Profil *
No když najedu na zařazen, aby se mi u všech zvýraznilo "zařazen"
a když na max. rychlost, aby se zvýraznily všechny "max rychlosti"...
hunter_dave
Profil
jj .. a jakou barvou .. rek bych ze ta z kterou sme to zkouseli se tam nehodi
David84711
Profil *
měl jsem namysli tuhle: #009999
David84711
Profil *
Spíš tuhle... #004666
hunter_dave
Profil
hale je to jednoduchy .. vschny
<td>zařazen</td>
změn na
<td id="zarazen_0" onmouseover="highlight('zarazen')" onmouseout="back('zarazen')">zařazen</td>
vždycky u idčka přidej 1 a zacni od 0.. takze .. id=zarazen_0 id=zarazen_1, ... to sami udelej u rychlosti apod. akorat misto zarazen napis treba rychlost .. nebo cokoliv .. a ten script dej az nakonec před </body> Barvu zvýraznění si změn v tom scriptu
for (var i = 0; i < 3; i++) {
 document.getElementById(groupname+'_'+i).style.backgroundColor="#004666";
 }
}
hunter_dave
Profil
jeste v tom
for (var i = 0; i < 3; i++)
změň na číslo kolik tam je letadel
hunter_dave
Profil
jenom pro vysvětlení jak to funguje ..
<td id="zarazen_0" onmouseover="highlight('zarazen')" onmouseout="back('zarazen')">zařazen</td>

při najetí myši (onmouseover) se spustí funkce highlight.
po opuštění objektu myší(onmouseout) se spustí fce back
v závorkách se předává hodnota funkci (groupname) .. zarazen

function highlight(groupname) {
for (var i = 0; i < 3; i++) {
 document.getElementById(groupname+'_'+i).style.backgroundColor="#004666";
 }
}
function back(groupname) {
for (var i = 0; i < 3; i++) {
 document.getElementById(groupname+'_'+i).style.backgroundColor="";
 }
}
</script>

fce highlight - script 3x projede dokumet a všem objektům s id zarazen_0, zarazen_1, zarazen_2 změní pozadí na #004666.
fce back - script 3x projede dokumet a všem objektům s id zarazen_0, zarazen_1, zarazen_2 změní pozadí zpět na defalutní.
David84711
Profil *
Co mám špatně? Dík.--
http://www.vystava-moo.mysteria.cz/encyklopedie/

(mám to jenom u prvních 2 letadel...)
hunter_dave
Profil
jenom jestli můžu poradit ... všimnul jsem si přihlašovacího pole .. bylo by možná lepší uvažovat o PHP .. pokud stránku zahesluješ javascritem není to zrovna bezpečné. :)
David84711
Profil *
vím, na tom PHP už pracuju, ale bude to nadlouho s mím chápáním :D
A prosím tě ještě k té tabulce, pořád to nefachčí... Uložil jsem to na web, jak si mě popsal..
hunter_dave
Profil
nejspíš někde v těch skryptech už hightlight máš .. zkus tam ten script nahradit tak aby to nevadilo ...
<script>
function zvyrazni(groupname) {
for (var i = 0; i < 3; i++) {
 document.getElementById(groupname+'_'+i).style.backgroundColor="#FFBB00";
 }
}
function odvyrazni(groupname) {
for (var i = 0; i < 3; i++) {
 document.getElementById(groupname+'_'+i).style.backgroundColor="";
 }
}
</script>


to sami musis udelat znova u tech <td> misto highlight napis zvyrazni a misto back napis odvyrazni
David84711
Profil *
Díky moc, funguje to.... Jsi skvělý
hunter_dave
Profil
nemas zac ..

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0