Avatar billede rane Nybegynder
22. november 2004 - 15:05 Der er 26 kommentarer og
1 løsning

Ingen venstre click funktion

Hejsa,

kort og godt. Nogen der har et no-left-click script der laver en function, der kan bruges <td onclick>. Den skal være "silent", dvs. ingen alert box - og den skal ikke gælde for hele dokumentet...kun i de <td>s hvor den bliver sat.
Avatar billede tknudsen Nybegynder
22. november 2004 - 15:09 #1
du kan til enhver tid anullere en event ved at returnere false:

<td onclick="return false">Click me</td>
Avatar billede tknudsen Nybegynder
22. november 2004 - 15:10 #2
men hvis du ikke vil have at man skal kunne klikke på en celle, kan du jo bare lade være med at implementere eventhandleren...
Avatar billede rane Nybegynder
22. november 2004 - 15:16 #3
Det er mere fordi at jeg har en onclick event på hele <tr> tagget...som jeg gerne vil have annullet i alle celler undtagen 1 :)
Avatar billede tknudsen Nybegynder
22. november 2004 - 15:17 #4
ok... så burde onclick="return false" fungere
Avatar billede rane Nybegynder
22. november 2004 - 15:18 #5
Gør den desværre ikke :(

min <tr> onclick event er:

<script type="text/JavaScript">
function toggle(elm) {
    var nxtSibl = elm.nextSibling;
    nxtSibl.style.display = (nxtSibl.style.display=="none")? "block" : "none";
}
</script>
Avatar billede tknudsen Nybegynder
22. november 2004 - 15:22 #6
er der forskel på om du klikker på teksten i cellen eller ej ?
Avatar billede rane Nybegynder
22. november 2004 - 15:26 #7
Nææ, den kører stadig <tr> funktionen uanset om jeg klikker i blanke områder eller på teksten
Avatar billede tknudsen Nybegynder
22. november 2004 - 15:34 #8
Så er det fordi tr-onclick-eventen kører FØR td-onclick-eventen. Så holder mit forslag ikke.

Hvad er det du gerne vil?
Avatar billede rane Nybegynder
22. november 2004 - 15:38 #9
Jeg har flere <tr> rækker med data fra en db. Så har jeg et plus ikon (+) ud for alle..når man klikker på det ikon..skal en skjult <tr> dukke op nedenunder med yderligere data fra db. Når den er dukket op, skal + ikonet ændre sig til et minus ikon. Og ved tryk på minus ikon skal den nye <tr> skjule sig igen og ikonet ændre sig tilbage :)  Længere smørre men det virker lige nu...lige bortset fra at man også kan klikke i alle andre <td>s ...det ska kun være muligt at klikke på ikonerne :)

<tr> onclick gør så at den skjulte <tr> dukker op.
Avatar billede tknudsen Nybegynder
22. november 2004 - 15:39 #10
hvis du ligger ikonerne i en celle for sig selv, kan di flytte onclick fra tr til den td hvori ikonet ligger
Avatar billede tknudsen Nybegynder
22. november 2004 - 15:40 #11
så skal du ændre funktionskaldet:

<td onclick="toggle(this.parentElement)">...</td>
Avatar billede rane Nybegynder
22. november 2004 - 15:46 #12
Genialt! Det begrænsede området en del - det eneste der kager nu er så bare det smalle område rundt omkring + ikonet i den <td>. Hvis man da bare kunne lave onclicken på selve <img> tagget...men det ka den nok ikke da den kun virker på <tr> elementet :/
Avatar billede olebole Juniormester
22. november 2004 - 15:48 #13
<ole>

tdknudsen >> Nej, event'en på TD'en fyres af før event'en på TR'en ... dit forslag med at returnerer false er det, der ikke virker - uanset rækkefølgen  ;o)
'parentElement' er heller ikke anvendeligt, da den er IE-only.

rane >> Skriv hver TD på én linie og skriv så:
  <td onclick="toggle(this.parentNode)">...</td>

/mvh
</bole>
Avatar billede tknudsen Nybegynder
22. november 2004 - 15:48 #14
Du kan godt lave onclick på <img>. Men så skal du igen ændre funktionskaldet:

<img onclick="toggle(this.parentElement.parentElement)" />
Avatar billede tknudsen Nybegynder
22. november 2004 - 15:49 #15
ole >> er det en IE ting at man kan lave "cancel bubble event" ?
Avatar billede olebole Juniormester
22. november 2004 - 15:50 #16
yups - og desuden har IE og Moz helt forskellige måder at betragte en event på  :)
Avatar billede tknudsen Nybegynder
22. november 2004 - 15:52 #17
Så blev vi så kloge... parentElement og "cancel bubble" er IE specifikke.

Er parentNode fra w3c dom'en ?
Avatar billede olebole Juniormester
22. november 2004 - 15:53 #18
yups ... lige fra gryden  ;D

rane >> Ehhh ... glem i øvrigt, hvad jeg skrev om 'én linie'. Det er ikke nødvendigt at skrive hele TR'en på én linie. Jeg tænkte mig ikke ordentligt om  :)
Bare skriv:
  <td onclick="toggle(this.parentNode)">...</td>
så bør det virke.
Avatar billede rane Nybegynder
22. november 2004 - 15:54 #19
Det ultimative kunne være hvis man kunne smide onclick på <img>, men tknudsens eksempel virker ik helt. Den "fjerner" istedet en <td> celle og rykker alle cellerne den tak til venstre så.
Avatar billede olebole Juniormester
22. november 2004 - 15:56 #20
Har du prøvet det, jeg skrev?
Avatar billede rane Nybegynder
22. november 2004 - 15:57 #21
ole, jeps det virker fint på samme måde som tknudsens  this.parentElement.  Det sidste "problem" er nu bare det smalle område rundt omkring ikonet, hvor man kan klikke..men som så ikke kører "image change" funktionen. Netop derfor ville det være perfekt hvis man ku smide onclick funktionen på <img> tagget :)
Avatar billede olebole Juniormester
22. november 2004 - 16:01 #22
Prøv med en URL til siden
Avatar billede rane Nybegynder
22. november 2004 - 16:02 #23
En kosmetisk ting, som egentlig ikke er nævnt i hovedspørgsmålet såå. Men ku da være lækkert hvis i havde en hurtig fiks løsning til dette også :)

Ole, din browser-kompatible parentNode fortjener da et par points, så hvis du smider et svar, deler jeg lige points mellem dig og tknudsen
Avatar billede rane Nybegynder
22. november 2004 - 16:05 #24
Avatar billede rane Nybegynder
22. november 2004 - 16:06 #25
Den nederste del af source-koden er udkommenteret...ka virke lidt forvirrende :)
Avatar billede olebole Juniormester
22. november 2004 - 16:08 #26
Lad os lige blive enige om, hvad det er, du ønsker  ;o)
Skal TR'en kun åbne sig ved tryk på billedet?
Avatar billede rane Nybegynder
22. november 2004 - 16:18 #27
Ole, jeps :)
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