Avatar billede sansalvador Nybegynder
17. september 2003 - 18:31 Der er 8 kommentarer og
1 løsning

Onclick på tabel i vejen

Hejsa.. Jeg har en onclick på min tabel.

Men problemet ligger i at jeg også har et billede, som udfører en funktion (også vha. onclick).

Når jeg klikker på billedet, aktiverer den også tabellens onclick, og derfor når funktionen, som billedet aktiverer, ikke altid at blive udført.

Hvordan kan jeg undgå dette?
Avatar billede sansalvador Nybegynder
17. september 2003 - 18:44 #1
billedet ligger self inde i tabellen ...
Avatar billede mroderick Nybegynder
17. september 2003 - 18:47 #2
Du kan f.eks. lave din img onclick funktion til kun at acceptere events fra img:

function ImgOnClicl (){
  if (event.srcElement.tagName == "IMG" )
  {
        // din kode her
  }
}

Dette vil kun virke med Internet Explorers event model, men i første omgang er det da et fix.

mvh.
Morgan Roderick
Avatar billede sansalvador Nybegynder
17. september 2003 - 19:25 #3
Jamn det var jo det... Bare den skulle ikke puttes på billedets funktion, men tabellens onclick-funktion sådan her:

onclick="if (event.srcElement.tagName != "IMG" ) { ....... blabalbal

Tak skal du have :)
Avatar billede =maddog= Nybegynder
17. september 2003 - 21:19 #4
errrr. kunne du ikke bare bruge cancelBubble til at stoppe event'en sådan som man skal i stedet for denne mærkværdige konstruktion. Et eksempel til illustration:
<div onclick="alert('Denne bliver også udført');">
    <span onclick="alert('Denne bliver udført');">Test</span>
</div>
<div onclick="alert('Denne bliver IKKE udført');">
    <span onclick="alert('Denne bliver udført'); if(event)event.cancelBubble=true;">Test</span>
</div>
Avatar billede mroderick Nybegynder
18. september 2003 - 09:07 #5
maddog, du har fuldstændig ret ... man kan også sagtens annulere event'en på parent elementet.
Avatar billede =maddog= Nybegynder
18. september 2003 - 11:54 #6
man kan lige så godt vende sig til det. hvis du f.x. har to eventhandlers nested med samme tagname og attributter bliver filtrering så meget mere besværligt.
Avatar billede mroderick Nybegynder
18. september 2003 - 12:16 #7
maddog, enig.

Dog sidder jeg lige nu og arbejder med noget, der skal kunne køre i Mozilla, Safari, Opera etc. På min måde slipper jeg for at bekymre mig om det IE eller W3C event model ... da jeg slet ikke bruger cancelBubble ;)

Morgan
Avatar billede =maddog= Nybegynder
18. september 2003 - 12:46 #8
mit forrige eksempel virker også i NS/Moz da jeg checker om event er defineret :D. Mærkværdigvis "yngler" event'en også på den øverste hvilket undrer mig en del. Det burde ikke ske i NS hvis jeg husker ret.
Jeg vil læse på dette.
Avatar billede mroderick Nybegynder
18. september 2003 - 13:43 #9
doh, den detalje havde jeg overset ...
/me skal vist også lige læse lidt mere ;)
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



IT-JOB