Thank you!
I'm still confused about the syntax, but this saved my problem.

- D.

On Mar 24, 3:59 am, kangax <[EMAIL PROTECTED]> wrote:
> You need to "bind" the actual callback function (since it will be
> executed in a global context otherwise):
> ...
> onSuccess: function(data) {
>   // do some processing...
>   this.callback(); // <= "bind" ensured that "this" refers to your
> instance}.bind(this)
>
> ...
>
> - kangax
>
> On Mar 23, 7:20 pm, dj <[EMAIL PROTECTED]> wrote:
>
> > Ahhh thank you for your answer. It really saved me.
> > Where can I read some detailed documentation regarding "this" keyword
> > and how to use it correctly with prototypejs?
>
> > I have one more question regarding this (I'll keep the same example):
>
> > var SuperClass = Class.create();
> > SuperClass.prototype = {
> >         test : "Test data is ",
> >         initialize : function(){
> >                 this.doRequest();
> >         },
> >         doRequest : function() {
> >                 new Ajax.Request('somedata.php', {
> >                                                         method: 'get',
> >                                                         onSuccess :
> > this.callback.bind(this) <<== **here**
> >                                                  } );
> >         },
> >         callback : function(data) {
> >                 alert(this.test+":"+data);
> >         }
>
> > };
>
> > if I want to have instead of this.callback.bind(this)  implemented
> > function which calls callback (only when needed) for example:
>
> > var SuperClass = Class.create();
> > SuperClass.prototype = {
> >         test : "Test data is ",
> >         initialize : function(){
> >                 this.doRequest();
> >         },
> >         doRequest : function() {
> >                 new Ajax.Request('somedata.php', {
> >                                                         method: 'get',
> >                                                         onSuccess :
> > function(data) { do some processing; . . .  **
> > this.callback.bind(this);  how to call callback from here ** }
> >                                                  } );
> >         },
> >         callback : function(data) {
> >                 alert(this.test+":"+data);
> >         }
>
> > };
>
> > Thank you.
> > D.
>
> > On Mar 23, 12:43 am, jdalton <[EMAIL PROTECTED]> wrote:
>
> > > You need to bind this.callback();
> > > because its loosing the proper scope of 
> > > "this".http://www.prototypejs.org/api/function/bind
>
> > > this.callback.bind(this)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Spinoffs" group.
To post to this group, send email to rubyonrails-spinoffs@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to