Avatar billede sortsnak.dk Nybegynder
16. august 2004 - 20:16 Der er 6 kommentarer og
1 løsning

Ignorer body-onclick ved div-onclick

Følgende kode beskriver mit problem:

100 point til den som kan løse følgende problem:

[code]
  <body onclick="alert('1');">
  <div onclick="alert('2');">link</div>
[/code]


Når man klikker på div'en popper alert2 frem... men bagefter popper alert1 frem... Det vil jeg gerne undgå, men hvordan? Jeg vil stadig gerne have at alert1 kommer frem, når man ikke klikker på div'en...

Og <div onclick="alert('2');return false;">link</div> virker ikke... Hvad gør jeg? :)

Hjælp mig, I kloge hoveder!!! :D
Avatar billede simonfreiesleben Nybegynder
16. august 2004 - 20:27 #1
Du kan give de(t) element(er) som den skal reagere på et fallæs classnmae, som du så tjekker på når du vil give alerten.

<div class="give_alert_div" onclick="should_I_give_an_alert();">link</div>

function should_I_give_an_alert() {
  if (window.srcElement.className == "give_alert_div")
    alert('2');
}
Avatar billede simonfreiesleben Nybegynder
16. august 2004 - 20:30 #2
hov, det var vist noget vrøvl!
Avatar billede jakoba Nybegynder
16. august 2004 - 22:38 #3
Det der sker er at IE (og kun IE) sel sådan en event som en pil der går hele vejen igennem din side. Først rammer den din div og nedenunder din div ligger så body.

for at forhindre det skal du sætte event.chancelBubble til true i den eventhandeler der færdighåndterer hændelsen.
 
[code]
  <body onclick="alert('1');">
  <div onclick="alert('2');if(event)event.cancelBubble=true;">link</div>
[/code]

grunden til 'if(event)' er at undgå at andre brovsere (der ikke laver et event objekt) kløjs i det.

læs mere her:
http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/cancelbubble.asp

mvh JakobA
Avatar billede sortsnak.dk Nybegynder
16. august 2004 - 23:52 #4
Du er genial :) ... Jeg vidste at det var møgsimpelt! :)

100 point til jakoba... og mange tak herfra! :D

case closed :)
Avatar billede sortsnak.dk Nybegynder
16. august 2004 - 23:52 #5
jakoba er genial :) ... Jeg vidste at det var møgsimpelt! :)

100 point til jakoba... og mange tak herfra! :D

case closed :)
Avatar billede sortsnak.dk Nybegynder
16. august 2004 - 23:53 #6
argh fuck... double posting! :(
Avatar billede jakoba Nybegynder
16. august 2004 - 23:59 #7
det er ok. nogen ting kan ikke siges for mange gange :-))
takker
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