Forkort javascript kode?

Tags:    javascript

<< < 12 > >>
Hey udviklere.

Jeg har denne javascript kode:

<tr id="7" onClick="musklik(this.id);" onMouseOver="musind(this.id);" onMouseOut="musud(this.id);">

Som jeg bruger til mine tabeller for at lyse baggrunden op når man holder musen over. Men findes der ikke en mere simpel metode at gøre dette på?

Lige nu ser det nemlig meget rodet ud:

Fold kodeboks ind/udPHP kode 

(bare et udkast fra min kode)

Og selve javascript koden ser således ud:

Fold kodeboks ind/udJScript kode 




11 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 19 karma
Sorter efter stemmer Sorter efter dato
Du kan ændre din javascriptkode til

Fold kodeboks ind/udJScript kode 


Så slipper du helt for at have javascript i din htmlkode

<tr id="7"> .... </tr>



Hej Matjøvas

Du kan faktisk også helt undgå javascript til den effekt ved at lave det med CSS (og det bruger også færre kodelinier). Du kan bruge tr:hover selectoren, selvom du nok bør sætte en class på dine tr's:

Fold kodeboks ind/udCSS kode 


Det er altså noget kortere end med javascript :-)



Matjøvas, Phillip har faktisk allerede vist dig hvordan du kan gøre det med en klasse. Hvis den er på din tabel i stedet, ser det blot således ud:

Fold kodeboks ind/udCSS kode 




Mvh.

Kasper (TSW)



En ren JavaScript løsning er selvfølgelig fin nok hvis man ikke bruger nogen JS frameworks. Personligt bruger jeg altid jQuery og derfor ville jeg gøre noget ala det her:

Fold kodeboks ind/udJScript kode 


Mvh.

Kasper (TSW)



Indlæg senest redigeret d. 18.05.2011 10:53 af Bruger #1
Begge svar ser meget fyldestgørende ud.

Phillip:

Smart metode med CSS, dog er det ikke alle tabeller jeg vil have hover på. De tabeller som jeg gerne vil have åbner jeg således:
<table class="overviewTable">
Kan man evt. definere, hvis tabellens klasse hedder "overviewtable", så skal der komme hover på trs?

AH:
Smart - men samme spørgsmål som overstående. Og en anden ting.
I stedet for at definere antal tr's kan det så ikke laves på en anden måde? Fordi jeg tit har mange rows, hvor jeg har et ubestemt antal <tr>'s.



Hvis du bruger CSS teknikken skal du huske at sætte en doctype. Ellers går IE i quirkmode, testede det med IE8,og der virker hover ikke på andet end a tags.

Med doctype, du kan sikkert sætte andre typer. Jeg tog denne fra udvikleren.
Fold kodeboks ind/udKode 


Uden doctype
Fold kodeboks ind/udKode 




O.K. Jens - det kan jeg se. I det jeg bruger doctype opstår der andre problemer i back-end designet, så jeg må holde mig til Javascript.

Afventer forsat javascript løsningen.

Gode og konstruktive svar p.t. ellers. :B



Det eneste man skal være opmærksom på med css :hover er at gamle versioner af Internet Explorer kun tillader :hover på <a>-elementer.



Det ser proft ud Kasper- jeg tager et kig på det.

Perfekt - tak for det!



Indlæg senest redigeret d. 18.05.2011 11:18 af Bruger #16320
Selv tak :)

Fik du styr på det i din .htaccess tråd eller hvad?

Mvh.

Kasper (TSW)



<< < 12 > >>
t