[JS] attachEvent probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Krooswijk.com
  • Registratie: Mei 2000
  • Laatst online: 17-08-2024
Ik heb m'n probleem al teruggebracht naar het voglende stukje code

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<script type="text/javascript" language="JavaScript">
<!--
    function MyObject()
    {
        this.label = "MyLabel";
    }

    MyObject.prototype.print = function()
    {
        alert( this.label );
    }

    MyObject.prototype.get = function()
    {
        return this.label;
    }

    var myObject = new MyObject();

    document.attachEvent( 'onmouseup', myObject.print ); // geval 1: werkt niet in IE
    document.addEventListener( 'mouseup', myObject.print, false ); // geval 2: werkt niet in FF

    //alert( myObject.get() );                           // geval 3: werkt wel
-->
</script>


In geval 1 en 2 krijg ik een alert met "undefined" erin, en in geval 3 wel netjes een alert met "MyLabel". Het lijkt er dus op dat vanwege de de document.attachEvent hij vanuit een andere context gaat denken en voor 'this' niet meer MyObject ziet. Iemand een idee hoe ik het eerste geval werkende kan krijgen? Het gaat hier volgens mij om een scope probleem.

edit:
Even uitgelegd dat FF ook niet werkt

[ Voor 12% gewijzigd door Krooswijk.com op 31-03-2008 11:18 ]


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-09 16:31
Ik krijg in Firefox toch een veel duidelijkere foutmelding die je wel op weg moet helpen denk ik als het gaat om xbrowser compatibiliteit:

document.attachEvent is not a function

(neemt even niet weg dat er een scope probleem is)

Dit kun je oplossen met bijvoorbeeld:

code:
1
document.body.attachEvent( 'onmouseup', function () {myObject.print()} );

[ Voor 47% gewijzigd door Bosmonster op 31-03-2008 11:33 ]


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:40

crisp

Devver

Pixelated

Bosmonster: attachEvent is IE proprietary (en een brak event-model), ik dacht dat je dat wel wist?

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-09 16:31
crisp schreef op maandag 31 maart 2008 @ 11:23:
Bosmonster: attachEvent is IE proprietary (en een brak event-model), ik dacht dat je dat wel wist?
Ja bedenk het me ook net.. ben teveel verwend tegenwoordig met xbrowser libraries..

Acties:
  • 0 Henk 'm!

  • dB90
  • Registratie: Oktober 2004
  • Laatst online: 03-09 17:28
Misschien heb je hier wat aan?

Webberry Webdevelopment


Acties:
  • 0 Henk 'm!

Verwijderd

als je iets aan een event hang met attachevent, krijgt de handler de globale scope mee, dat werkt dus niet lekker. Even de goede scope meegeven dus.
Pagina: 1