Avatar billede topperware Nybegynder
30. marts 2005 - 13:00 Der er 10 kommentarer og
1 løsning

javascript til genbrug af onmouseover/out funktion

Kan man vha fx et javascript undgå at skulle skrive følgende:

...onMouseover="this.style.backgroundColor='#C5BDB9';" onMouseout="this.style.backgroundColor='#ffffff';" class="menu">bla
</td>
  </tr>
  <tr>
    <td class="menu>blabla</td>
  </tr>
  <tr>
    <td class="menu">blablabla</td>
  </tr>...

Hher gang man ønsker denne funktionalitet(skifte baggrundsfarvefarven ved onMouseOver/Out i en tabel celle)?
Jeg mener skrive det et sted og så med et kort ord (funktionskald ell. noget css reference) referere til "script/style"
Avatar billede topperware Nybegynder
30. marts 2005 - 13:02 #1
der skal selvfølgelig stå:
hver gang og
baggrundsfarven
Avatar billede skyggen2000 Nybegynder
30. marts 2005 - 13:45 #2
jeg har lavet det via behaviors på et tidspunkt, som man kan refere til via en CSS klasse, som du kan refere til i din TD. Derved kan man til sidst opnå alt det du ønsker ved at skrive <td class="myClass">
Avatar billede skyggen2000 Nybegynder
30. marts 2005 - 13:49 #3
her er indholdet af min HTC fil: hedder også en microsoft script component.
De kan generes vha. en wizard der kan  downloades på deres hjemmeside.

<PUBLIC:COMPONENT>
<PUBLIC:ATTACH EVENT="onmouseover" ONEVENT="Hilite()" />
<PUBLIC:ATTACH EVENT="onmouseout" ONEVENT="Restore()" />
<PUBLIC:ATTACH EVENT="ondocumentready" ONEVENT="init()" />

<SCRIPT LANGUAGE="JScript">
    var BGColorOld;
    var BGColorOver = "blueviolet";
   
  function Hilite()
  {
      BGColorOld = runtimeStyle.backgroundColor;
      runtimeStyle.backgroundColor = BGColorOver;
  }

  function Restore()
  {
      runtimeStyle.backgroundColor = BGColorOld;
  }

    function init()
    {
        //runtimeStyle.cssText = TopMenuTD;
    } 
 
 
</SCRIPT>
</PUBLIC:COMPONENT>

og min CSS klasse:
.TopMenuTD{behavior:url(..\resources\behaviors\menuControl.htc);text-align:center;background-color:darkslateblue;FONT-WEIGHT: bold; FONT-SIZE: 11px; vertical-align:middle; FONT-FAMILY: Verdana; TEXT-DECORATION: none; color:#ffffff;cursor:hand;}
Avatar billede skyggen2000 Nybegynder
30. marts 2005 - 13:49 #4
Så kan du prøve at lege lidt med det:)
Avatar billede olebole Juniormester
30. marts 2005 - 15:51 #5
<ole>

Nu er den slags behaviors jo IE-only og derfor uegnet til WWW i almindelighed, men dette kan det samme:

<script type="text/JavaScript">
window.onload = function() {
    var aTD = document.getElementsByTagName("TD");
    for (i=0,j=aTD.length; i<j; i++) {
        if (aTD[i].className=="menu") {
            aTD[i].onmouseover = function() {this.style.backgroundColor = "#C5BDB9"};
            aTD[i].onmouseout = function() {this.style.backgroundColor = "#ffffff"};
        }
    }
}
</script>

/mvh
</bole>
Avatar billede olebole Juniormester
30. marts 2005 - 15:52 #6
PS: Den tildeler event-handlers til alle sidens tabel-celler, der har klassen 'menu'
Avatar billede skyggen2000 Nybegynder
30. marts 2005 - 15:54 #7
allright, det kan der være noget om, men det er jo meget lækkert og funker. Dog er dit forslag mere browser kompatibelt
Avatar billede olebole Juniormester
30. marts 2005 - 16:07 #8
Jamen HTC'ere kan da bruges til en masse spændende ting og har nogle gevaldige fordele. Til netop dette formål får man nu stort set kun 'glæde' af bagdelene ved HTC'en ... ikke fordelene  :)

Den helt store fordel ved en HTC, er at det er et windowed element, indlejret i siden. Det betyder, at dens indhold er komplet isoleret fra resten af siden - og dens HTML-indhold derfor ikke er at finde i dokumentets DOM.
Men det kræver jo, at HTC'en har noget HTML-indhold at vise. Har den ikke det, er det bedre at bruge en almindelig behavior.

Bagdelen (udover, at den kun virker i én browser) er, at den kræver sin egen, separate fil. Lægger man alle sine små funktionaliteter i HTC'er, rammer man forholdsvis hurtigt IE's loft for import af filer - ikke mindst, hvis det er en støøre applikation, man har gang i.
Avatar billede topperware Nybegynder
30. marts 2005 - 23:34 #9
Hej skyggen2000,
ja, uden jeg helt kan gennemskue dit bud på en løsning, fornemmede jeg nok det var noget lidt mere EI specifikt, modsat det lidt mere browser kompatible forslag fra olebole. Faktisk ved jeg ikke helt hvad det er for noget, men jeg vil da lige tjekke det ud ved lejlighed.

Tak for hjælpen
Avatar billede topperware Nybegynder
30. marts 2005 - 23:43 #10
Hej ole,
den er lige øjet.

Tak for hjælpen
Smid et svar og få point
Avatar billede topperware Nybegynder
01. november 2005 - 11:33 #11
lukker
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