18. maj 2007 - 12:44Der er
15 kommentarer og 1 løsning
Gøre en hel tabelcelle klikbar
En tabelcelle med skal indeholde følgende
1. et "felt" som er en firkant height:8px;width8:px og feltets farve sætter jeg selv runtime 2. i nogle tilfælde et bogstav ved siden af feltet, f.eks. A 3. i nogle tilfælde endnu et bogstav ved siden af det forrige, f.eks. B, med farve/text-decoration separat sat og afvigende fra A
så alt i alt : xAB, hvor x står for mit "felt" , og A&B A & B skal ikke se klikbare ud på nogen måde.
Jeg har en virkende implementering, hvor mit "felt"er klikbart:
x= <input type=button> hvor størrelsen af knappen og farven sættes ved ved at jeg vælger css-klasse når jeg skriver html'en i mit program A&B ligger indtil videre i samme SPAN element tilføjet cellen
Mit klikbare "felt" er i praksis for lille til nemt at kunne klikke på , og hele cellen skal derfor helst være klikbar.
Jeg har set at man kan få et <A> til fylde en hel celle ud med display:block, men hvordan gør man dette når der også ligger andre elementer i cellen - kan man det i det hele taget ?
Eller er det eneste alternativ at tilføje noget javascript til <td> elementet ?
Et klik på mit "felt" trigger en postback, hvor jeg laver en masse processing server-side, og det er jeg ganske tilfreds med. Skal egentligt opnå det samme med hele cellen.
Jeg havde håbet at kunne bruge de "normale" elementer til at trigge det med, fordi jeg ved hvordan jeg skal identificere kilden til postback når jeg er tilbage på serveren(dvs hvilken af alle mine knapper, som der blev klikket på).
Med en klikbar tabelcelle skal jeg lige regne ud hvordan jeg på serveren kan finde ud af hvilken celle det var. Jeg kan/vil naturligvis give den et ID - og så er det vel blot at finde den i request.form.
Vil kigge på det - vender tilbage, dog nok først i morgen. Havde bakset med noget a la roenvings løsning, men kunne ikke få den til at spænde over HELE cellen, når der også lå andre ting i cellen.
roenving - jeg har ikke foklaret det godt nok vist. Jo det hele skal være klikbart, ønskede dog ikke at A og eller B skulle se ud som et link med f.eks. underline.
Det hele skal virke i IE 6, 7 og FF
Hvis jeg gør hele cellen klikbar med JS, så har jeg det problem, at jeg ikke ved hvordan jeg skal ændre cursor til Pointer - det som sker automatisk hvis man har et anchor element. Det ser ud til, at der ikke findes noget hover event for TD'er. Nogen ideer ? (Det er ikke alle celler i tabellen som bliver klikbare, eller har indhold, så det er noget der skal implementeres per celle).
I min nuværende imperfekte løsning kan jeg få et hover over min lille firkant i FF, mens IE 6 kun laver hover over anchors ..grrr - har set fif ude på nettet med "behaviours" osv, for at tackle IE 6 - men det er lidt for meget synes jeg.
Indtil videre så synes w13's forslag at være den eneste farbare vej - er det rigtigt ?
Jeg kan få det til at fungere - altså det med at klikke på en hel celle ved at gøre <td onclick="noget();" style="cursor:pointer;">
Min knap (den der 8x8px ting) havde en funktion før- det var at i CSS lave en lille sort/hvis eller grå firkant. Hvis jeg nu ikke skal bruge knappen til at klikke på, så er den jo lidt overflødig. Men hvordan kan jeg lave en 8x8px firkant i css ?Jeg kunne godt nok bruge en gif, men det vil jeg helst slippe for.
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.