Avaleht
uus teema   vasta Tarkvara »  WWW »  Taustavärvi muutmine kui name, ID või class ühtivad märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
Risto40
HV vaatleja

liitunud: 31.10.2004




sõnum 07.07.2010 11:26:37 Taustavärvi muutmine kui name, ID või class ühtivad vasta tsitaadiga

Tere,

kas keegi oskaks sellise koodijupi valmis meisterdada, mis muudaks automaatselt mingi tabeli lahtri taustavärvi, kui ID, class või name ühtivad?

Natuke lähemalt minu mõttest:
oletame, et mul on veebilehel kuskil siuke tabeli lahter, mille name="sisu" ja id="about". Ja veel on mul olemas kusagil lehel kas siis tabelina või dividena (üksteise alla) tehtud menüü, kus üheks menüüreaks oleks ABOUT. Nüüd ma tahan, et just see menyy ABOUT rida saaks ise automaatselt aru, et ta peab oma taustavärvi ära muutma, kuna avatud on about leht (olek hea kui rakendadaks uus className sellele ABOUT menyy reale). Seega oleks vaja mingit funktsiooni, nt javascriptis, mis näeks välja midagi siukest (ma ise javascripti ei valda, nii et nn õigekirjast on asi mu näite puhul kaugel): if name.sisu.id="about" (selle about'i kirjutan käsitsi koodi ise, st teiste menüüridade puhul on see midagi muud) then this.className="menyy_mouseover" else this.className="menyy".

Natuke segaseks vist jäi see, aga kui keegi aru sai, mida mõtlesin ja oskab sellise koodijupi javascriptis valmis teha, siis tuhat tänu sulle!

et miks mul seda tarvis läheb? Menyy haagin include() käsuga lehele juurde, kuid ma tahan, et kui aktiivne (ehk leht mida parasjagu kuvatakse) on ABOUT leht, siis menüüs oleks selle rea tasutavärv teistest menyy ridadest erinev.
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 07.07.2010 12:45:51 vasta tsitaadiga

Segane jah. Ühte võin öelda sama nimega id sid olla lehel ei tohi. Selleks kasutatakse class.

Sa mõtled, et on mingi menüü ja vastavalt avatud sisule on ka selle menüü värv teine? Ideoloogia on ikka vastupidine, mitte menüü ei saa aru, mis sisuks on vaid sa ju klikid esmalt menüül, nüüd märgitakse ära, et see on avatud ja kuvatakse sisu.

<table border="1" summary="" id="m">
   <tr>
      <td id="m1">Esimene</td>
   </tr>
   <tr>
      <td id="m2">Teine</td>
   </tr>
   <tr>
      <td id="m3">Kolmas</td>
   </tr>
   <tr>
      <td id="m4">Neljas</td>
   </tr>
</table>
<div id="sisu" style="width:300px;height:100px;border:solid 1px #000;"></div>

<script>
var me1 =document.getElementById('m1');
var me2 =document.getElementById('m2');
var me3 =document.getElementById('m3');
var me4 =document.getElementById('m4');
var tdd = document.getElementById('m').getElementsByTagName('td');
var ss = document.getElementById('sisu');
var sisud = Array(
"Esimene",
"Teine",
"Kolmas",
"Neljas"
);
me1.onclick = function(){
valge();
this.style.background = "#cccccc";
ss.innerHTML = sisud[0];
}
me2.onclick = function(){
valge();
this.style.background = "#cccccc";
ss.innerHTML = sisud[1];
}
me3.onclick = function(){
valge();
this.style.background = "#cccccc";
ss.innerHTML = sisud[2];
}
me4.onclick = function(){
valge();
this.style.background = "#cccccc";
ss.innerHTML = sisud[3];
}
function valge(){
for(i=0;i<tdd.length;i++){
tdd[i].style.background = "#fff";
}
}
</script>

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Renka
HV Guru
Renka

liitunud: 01.04.2002




sõnum 07.07.2010 12:57:05 vasta tsitaadiga

Risto40, pane siis valitd menüüle miski lisa class külge.

näiteks class="active" ja siis CSSiga stiili palju tahad.

Javascriptiga sellist asja küll ei tehta.

_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Risto40
HV vaatleja

liitunud: 31.10.2004




sõnum 07.07.2010 13:08:14 vasta tsitaadiga

to andrusny

mõtlesin nii, et klikin esmalt menüül, misjärel kuvatakse uus leht. Kui leht avaneb, siis iga menüü rea funktsioon loeb sisu ID ja kui see ühti koodi sisse kirjutatud nimega, siis selle menyy rea taustavärv muudetakse ära.

Menüüle klikkides ei kuvata uut sisu läbi javascripti funktsiooni vaid kogu leht reload'itakse uuesti (nagu tavalisele lingile klikkides). Ja kui leht avaneb, siis iga menüü rida võrdelb sisu ID'd koodi kirjutatud sõnaga.


to Renka

Põhimõtteliselt tahangi nii, et kui sisu ID vastab menüü koodis antud sõnale, siis rakendataks uus class. Kui mul oleks menüü kirjutatud otse igasse lehte sisse, siis poleks probleemi seda teha. Aga tahan nii teha, et menüü on üks eraldi html või php fail mis haagitakse sisule külge. Tahan seda sellepärast nii teha, et kui lehti saab palju olema, siis vajadusel saab menüüd lihtsalt muuta (nt midagi lisada, kustutada) tehes muudatusi vaid selles ühes menüü failis.
tagasi üles
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002




sõnum 07.07.2010 13:09:17 vasta tsitaadiga

Risto40, no aga milles probleem? Selles eraldi failis teedki oma kontrolli
_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Risto40
HV vaatleja

liitunud: 31.10.2004




sõnum 07.07.2010 13:22:11 vasta tsitaadiga

Eks õhtul proovin, kas saan andrusny'i antud koodiga asja tööle.
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 07.07.2010 17:46:03 vasta tsitaadiga

Kui sa lehte tahad ümber laadida, siis JS eriti ei sobi, kasuta php

<?php
if(isset($_GET['lk'])){
   $lk=$_GET['lk'];
}else{
   $lk=1;
}
?>
<html>
<!-- Creation date: 7.07.2010 -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1257">
<title></title>
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="author" content="Andrus">
<meta name="generator" content="AceHTML 5 Pro">
<style>
<?php
if($lk==1){echo '#l1{background:#cccccc;}';}
if($lk==2){echo '#l2{background:#cccccc;}';}
?>
</style>
</head>
<body>
<a href="?lk=1" id="l1">Esimene</a><a href="?lk=2" id="l2">Teine</a>
<div id="sisu">
<?php
if($lk==1){
echo '
Minu esimene leht
';}
if($lk==2){
echo '
Minu teine leht
';}
?>
</div>
</body>
</html>

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Risto40
HV vaatleja

liitunud: 31.10.2004




sõnum 07.07.2010 22:26:19 vasta tsitaadiga

olen nüüd tunde ja tunde netis surfanud ja lõpuks siis leidsin ühe lihtsa variandi, kuidas see tööle saada (ja minule arusaadavas keeles icon_smile.gif. Tegu siis body ja menyy ID'ga ja CSS'ga. Lihtne ja täpne õpetus siin, kel huvi: http://hicksdesign.co.uk/journal/highlighting-current-page-with-css

aga tänud siiski et abivalmid olite!

Loeme teema lukku.
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  WWW »  Taustavärvi muutmine kui name, ID või class ühtivad
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.