Avatar billede krogstrup Nybegynder
20. december 2004 - 12:41 Der er 12 kommentarer og
1 løsning

Ændre egenskaber for CSS klasse via javascript

jeg har nedenstående klasse:

.mmenu {
position:absolute;
display:none;
}

kan jeg med javascript dynamisk ændre egenskaberne for denne klasse ?

altså noget lignende:

document.getElementByClass("mmenu").style.display = "block"


?!?
Avatar billede krogstrup Nybegynder
20. december 2004 - 12:45 #1
bemærk venligst at jeg ikke har mulighed for at sætte en ID på min DIV, det skal være en klasse !
Avatar billede madsass Nybegynder
20. december 2004 - 12:53 #2
Avatar billede madsass Nybegynder
20. december 2004 - 12:55 #3
Du SKAL bruge id til det.
Hvorfor bruger du ikke bare id?
Avatar billede krogstrup Nybegynder
20. december 2004 - 13:06 #4
hmm - problemet er at det drejer sig om en større DHTML menu, jeg har købt en licens til. Og når jeg skal styre om denne menu skal være synlig eller ej, er jeg blevet instrueret i at påvirke ovenstående klasse.

Jeg ved ikke om menuen har en ID, og det er lidt svært for mig at gennemskue da vi taler om RIGTIG mange linier kode...
Avatar billede krogstrup Nybegynder
20. december 2004 - 13:07 #5
jeg må jo prøve at spørge dem om der ikke er defineret en ID for menuen som jeg kan påvirke...
Avatar billede roenving Novice
20. december 2004 - 13:52 #6
Så kan du blive nødt til at iterere igennem alle stylesheets, der iterere gennem alle styles indtil du finder den med selectoren .mmenu !-)
Avatar billede krogstrup Nybegynder
20. december 2004 - 14:25 #7
hmmm - har nu fundet den ID der sat på min menu.

Hvis jeg i javascriptet der genererer menuen indsætter

document.getElementById('menu0').style.visibility = "hidden";

bliver min menu også fint skjult.

men når jeg så længere nede i scriptet, hvor jeg ønsker at vise menuen igen indsætter

document.getElementById('menu0').style.visibility = 'visible';

ja, så sker der ikke en skid. Menuen forbliver skjult ?!?

Nogen idéer til hvad der forårsager denne mærkelig opførsel ?
Avatar billede thomas_yde Nybegynder
20. december 2004 - 14:28 #8
Det er svært at se noget uden koden, og hvis du siger der er RIGTIG mange linjer kode ja så bliver det ikke nemmere.

Det kan jo være din menu0 er nested i et andet objekt der også der gemt?
Avatar billede krogstrup Nybegynder
20. december 2004 - 14:32 #9
hmmm, men hvis jeg ikke skjuler menuen med
document.getElementById('menu0').style.visibility = "hidden";
så bliver menuen vist fint - så kan jeg vel udelukke at den er nested i et andet skjult object ?
Avatar billede krogstrup Nybegynder
20. december 2004 - 14:32 #10
det der undrer mig er at jeg godt kan skjule den, men ikke få lov til at vise den igen.... ?!?
Avatar billede thomas_yde Nybegynder
20. december 2004 - 14:36 #11
jo men de 2 ting hænger ikke nødvendigvis sammen.
div1 er hidden div2 ligger under div1:
<div id="1" > <--- hidden
  <div id"2"></div>  <---dvs den her er også hidden, hvis du sætter den til visible er den stadig hidden pga. div1
</div>

<div id="1"> <--- visible
  <div id="2"></div> <----hidden, kan skjules og vises idet div1 er synlig
</div>
Avatar billede krogstrup Nybegynder
20. december 2004 - 15:07 #12
hmmm - jeg forstår godt hvad du siger, men synes ikke det er relevant i forhold til min problemstilling. Har du læst min indlæg 20/12-2004 14:32:27 ?

Min pointe er jo at hvis menuen som udgangspunkt vises, hvis jeg ikke indsætter nogen manipulerende kode, så kan den jo ikke være indlejret i nogen skjult div.
Avatar billede roenving Novice
21. december 2004 - 22:51 #13
Måske kan du bruge denne maskine:

<script language="javascript" type="text/javascript">
function changeCSSProperty(clss,propty,newValue){
var ie = (document.styleSheets[0].rules);
var moz = (document.styleSheets[0].cssRules);
if(!(ie||moz))return;
for(i=0;document.styleSheets.length>i;i++){
  css = (ie)?document.styleSheets[i].rules:document.styleSheets[i].cssRules;
  for(j=0;css.length>j;j++){
      if(css[j].selectorText.toLowerCase()==clss.toLowerCase()){
          eval("css[j].style."+propty+"='"+newValue+"'");
          return;
      }
  }
}
}
</script>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester