Or
var A = function() {};
A.prototype = {
get: function(id) {
$.ajax({
type : "GET",
caller:this,
....
success : function(xml) {
this.caller.status = ...
}
})
};
}
Note that unless you set the option 'async' to false, the request won't be
synchronous, so you can't evaluate the status "right after".
On Wed, Sep 24, 2008 at 11:59 AM, Jörn Zaefferer <
[EMAIL PROTECTED]> wrote:
> Use a closure:
>
> var A = function() {};
> A.prototype = {
> this.status; // hold the http response status
> get: function(id) {
> var self = this;
> $.ajax({
> type : "GET",
> ....
> success : function(xml) {
> self.status = ...
> }
> }) };
> }
>
> Jörn
>
> On Wed, Sep 24, 2008 at 4:51 PM, sglai <[EMAIL PROTECTED]> wrote:
> >
> >
> > um..let me try again.
> > Say you have a constructor A and you create objects from it:
> >
> > var myobj = new A();
> > myobj.get("file.xml");
> > var msg = myobj.status == 200 ? "yes" : "oh no";
> >
> > var myobj2 = new A();
> > myobj2.get("file2.xml");
> > var msg = myobj2.status == 200 ? "yes 2" : "oh no 2";
> >
> > So, the A could be like this:
> >
> > var A = function() {};
> > A.prototype = {
> > this.status; // hold the http response status
> > get: function(id) { $.ajax({
> > type : "GET",
> > ....
> > success : function(xml) {
> > // this in here is the XHR object.
> > // ??? how do i pass the status (200) to
> > "this.status"
> > }
> > }) };
> > }
> >
> > You see the "status" is an object property.
> > I like to initialize this property when the ajax return success.
> > What is the right way to do so?
> >
> >
> > On Sep 23, 2:23 am, Ariel Flesler <[EMAIL PROTECTED]> wrote:
> >> You can add custom attributes to $.ajax's object (thus to ajaxSetup).
> >> 'data' is likely to misbehave behave that value is sent to the server,
> >> and in some cases it has to be forcedly set to null to avoid sending
> >> both POST and GET vars.
> >>
> >> If you use any other key, it should work alright.
> >>
> >> As a sidenote, your specific example seems pointless. Because you're
> >> setting mydata each time before calling $.ajax, so you can simply add
> >> it to $.ajax.
> >>
> >> --
> >> Ariel Fleslerhttp://flesler.blogspot.com
> >>
> >> On Sep 21, 11:26 am, "sui-sing Lai" <[EMAIL PROTECTED]> wrote:
> >>
> >> > ok, I tried to pass "this" object to ajax callback.
> >> > I refer to jQuery doc and find out that I can pass it to via
> >> > $.ajaxSetup( { mydata : this } ).
> >> > code go like this:
> >>
> >> > var myObj = function() {
> >> > $.ajaxSetup({mydata:this});
> >> > $.ajax({
> >> > ....
> >> > success:function(xml){ this.mydata.status = 200}
> >> > }
> >>
> >> > }
> >>
> >> > Hope this is better.
> >>
> >> > Thanks,
> >> > sglai
> >>
> >> > 2008/9/21 Jörn Zaefferer <[EMAIL PROTECTED]>:
> >>
> >> > > Could you be more specific about the actual issue?
> >> > > $.ajaxSetup({mydata:this}) doesn't make much sense.
> >>
> >> > > Jörn
> >>
> >> > > On Sun, Sep 21, 2008 at 10:58 AM, sglai <[EMAIL PROTECTED]>
> wrote:
> >>
> >> > >> Hi,
> >>
> >> > >> Happen to find this problem. Does release test case cover this?
> >>
> >> > >> Regards,
> >> > >> sglai
> > >
> >
>
> >
>
--
Ariel Flesler
http://flesler.blogspot.com
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"jQuery Development" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---