[JavaScript/Jscript] Onchange binnen een custom object

Pagina: 1
Acties:

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

gvanh

Webdeveloper

Topicstarter
Goedemorgen!

Op dit moment ben ik bezig met een prachtig custom made object in JavaScript. Onder veel andere member variabelen heeft dit object een 'state', namelijk uitgeklapt of niet uitgeklapt. Nu wil ik graag, dat het object een bewerking uitvoert wanneer de state wordt gewijzigd. Een typisch gevalletje 'onChange' ... zo zou een mens denken. Helaas lijkt onChange binnen eigen objecten anders te werken.

Als voorbeeld onderstaande (sterk vereenvoudigde) code:

code:
1
2
3
4
5
6
7
function myObject () {

   this.uitgeklapt = false;
    
   this.uitgeklapt.onChange = alert ('Uitgeklapt is gewijzigd');

}


Nu is het zo, dat wanneer ik het object voor de eerste keer aanmaak:

code:
1
foo = new myObject;


Dan krijg ik een prachtige melding dat uitgeklapt is gewijzigd. Wanneer ik echter later de waarde van 'uitgeklapt' wijzig:

code:
1
foo.uitgeklapt = true;


Dan krijg ik niet mijn alert. Uit de microsoft definitie op msdn maak ik op, dat het wel zou moeten kunnen. Nu is er wel een work-around te bedenken om te doen wat ik wil ... het lijkt me echter zo leuk om dit ook op deze manier werkend te krijgen.

Heeft iemand hier ervaring mee / suggesties over.

Alvast grote dank!

  • André
  • Registratie: Maart 2002
  • Laatst online: 00:33

André

Analytics dude

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function myObject ()
{
  this.uitgeklapt = false;
}
this.prototype.uitklappen = myObjectUitklappen;

function myObjectUitklappen(arg)
{
  this.uitgeklapt = arg;
  alert("Uitgeklapt is gewijzigd");
}

foo = new myObject;
foo.uitklappen(true);

Is zo'n constructie niet mogelijk?

[ Voor 18% gewijzigd door André op 14-05-2004 11:46 ]


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

gvanh

Webdeveloper

Topicstarter
Da's inderdaad de 'work-around' waar ik het over had, en ook de constructie die ik nu aan het maken ben. Werkt zonder problemen. Het leek me alleen zo leuk om het via zo'n onChange event te doen.

  • André
  • Registratie: Maart 2002
  • Laatst online: 00:33

André

Analytics dude

Volgens mij kun je aan een string geen onchange koppelen.

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

gvanh

Webdeveloper

Topicstarter
Ja ... dat zou je dan zeggen.

MAARRRR ... waarom doet hij het dan wel wanneer ik het object voor het eerst aanmaak?

  • André
  • Registratie: Maart 2002
  • Laatst online: 00:33

André

Analytics dude

gvanh schreef op 14 mei 2004 @ 12:41:
Ja ... dat zou je dan zeggen.

MAARRRR ... waarom doet hij het dan wel wanneer ik het object voor het eerst aanmaak?
Omdat je achter de onchange een functie met haakjes zet, als je er een functienaam van maakt zonder () en dan in die functie de alert zet zal hij dat niet doen.

Verwijderd

gvanh schreef op 14 mei 2004 @ 12:41:
Ja ... dat zou je dan zeggen.

MAARRRR ... waarom doet hij het dan wel wanneer ik het object voor het eerst aanmaak?
Omdat dat de constructor is? :?

Voor zover ik weet kan je geen Events koppelen aan wijzigingen van objecten, zo'n faciliteit zou wel handig zijn voor debuggen, maar 't is er nou eenmaal niet.

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

onchange is inderdaad een eventhandler en is als zodanig geen standaard method van een function-object, maar enkel een standaard property van een HTML-object. Het is geen onderdeel van JS maar van de browser-implementatie van JS.

Intentionally left blank

Pagina: 1