Here's the link to the test page: http://www.virgentech.com/sandbox/this.html
-Hector On Mon, Nov 10, 2008 at 5:17 PM, Hector Virgen <[EMAIL PROTECTED]> wrote: > I'm having trouble using "this" in my objects when the method is triggered > by an event. > > Here's my basic test class. The lines that do not work as expected are in > red. > > var MyClass = function(selector) > { > this.hello = 'Hello World!'; > var onClick = function() > { > alert('onclick: this = ' + this); // <-- object HTMLInputElement > alert(this.hello); // <-- does not work: undefined > otherFunc(); > } > var otherFunc = function() > { > alert('otherfunc: this = ' + this); // <-- object Window ?? > alert(this.hello); // <-- does nto work: undefined > } > $(selector).click(onClick); > alert('loaded: this = ' + this); // <-- object Object > alert(this.hello); // <-- alerts "Hellow World!" > }; > > The way this works is instantiating a new MyClass object binds the click > event to the selector. This works fine, but "this" loses its scope, even > when calling other functions. > > To see this in action, check out this page (watch out for the alerts ;)). > > Any ideas on how to keep "this" within scope? > > -Hector >