Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[JS] eventhandlers uitlezen

Pagina: 1
Acties:

  • chielsen
  • Registratie: Oktober 2003
  • Laatst online: 22:40
Is er ook een mogelijkheid dat je bijv kan zien welke acties worden ondernomen bij de blur op een bepaald element?

Dus als je element.onblur = action; hebt dan je ergens anders kan zien dat de onblur van element, action is.

  • Swaptor
  • Registratie: Mei 2003
  • Laatst online: 15-10 19:25

Swaptor

Java Apprentice

Je bedoelt een soort index?

afaik is deze informatie in de DOM terug te vinden, maar niets ergens op een andere element dan het element waar de action op zit.

Ontdek mij!
Proud NGS member
Stats-mod & forum-dude


  • chielsen
  • Registratie: Oktober 2003
  • Laatst online: 22:40
Dat is niet erg, maar hoe kan i het dan vinden. Heb met firebug alles al uit zitten pluizen, maar nergens gevonden. Ik kan ook niet onblur uitlezen..

Hmm, dit is wat ik net van iemand krijg (van quirksmode):
Which event handlers are registered?

One problem of the current implementation of W3C’s event registration model is that you can’t find out if any event handlers are already registered to an element. In the traditional model you could do:

alert(element.onclick)

and you see the function that’s registered to it, or undefined if nothing is registered. Only in its very recent DOM Level 3 Events W3C adds an eventListenerList to store a list of event handlers that are currently registered on an element. This functionality is not yet supported by any browser, it’s too new. However, the problem has been addressed.

Fortunately removeEventListener() doesn’t give any errors if the

[ Voor 72% gewijzigd door chielsen op 20-09-2007 15:08 ]


  • Swaptor
  • Registratie: Mei 2003
  • Laatst online: 15-10 19:25

Swaptor

Java Apprentice

Ah, je wil zien welke acties er worden ondernomen terwijl het script runt?
Debuggen in feite dus?

Ontdek mij!
Proud NGS member
Stats-mod & forum-dude


  • chielsen
  • Registratie: Oktober 2003
  • Laatst online: 22:40
Nee kijken welke handlers er op een element zitten. Ik had namelijk het probleem dat ik meerdere keren dezelfde handler toevoegde en deze dus vaker dan 1 x werd uitgevoerd. Als ik nou kan zien dat ie al op een element zit, hoef ik hem niet nog een keer toe te voegen.

  • --MeAngry--
  • Registratie: September 2002
  • Laatst online: 21:13

--MeAngry--

aka Qonstrukt

Ik denk dat je er nu alleen omheen kunt komen door een array met de elementen als indexes en een boolean als waarde die aangeeft of het event al gezet is.
Beetje omslachtig, maar naar het blijkt kun je niet veel anders doen.

Tesla Model Y RWD (2024)


  • gvanh
  • Registratie: April 2003
  • Laatst online: 02-12-2023

gvanh

Webdeveloper

Of dus sowieso eerst de eventHandler verwijderen van het element waarop je hem wilt toevoegen, en dan pas toevoegen. Zoals het aangehaalde stuk documentatie zegt, levert dat geen foutmeldingen op, ook al bestaat de eventHandler die je wilt verwijderen niet op het bewuste element.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:28

crisp

Devver

Pixelated

chielsen schreef op donderdag 20 september 2007 @ 15:58:
Nee kijken welke handlers er op een element zitten. Ik had namelijk het probleem dat ik meerdere keren dezelfde handler toevoegde en deze dus vaker dan 1 x werd uitgevoerd. Als ik nou kan zien dat ie al op een element zit, hoef ik hem niet nog een keer toe te voegen.
Het W3C DOM event model staat dat niet toe, het IE event model echter wel. Voor IE zou je dus eerst voor de zekerheid een detachEvent moeten doen, of gebruik maken van een library die dat soort problemen sowieso al oplost ;)

Intentionally left blank

Pagina: 1