Can anyone think of a way to pass the value of a variable, not a reference to that variable (since the value of the variable might change after the AJAX request is sent) to an anonymous function defined for a success callback for AJAX? Or, is the only way to do this to have my /ajax/asset/insert callback return this ID back to me in the JSON response?
Thanks, Rob On Nov 28, 10:06 am, RobRoy <[EMAIL PROTECTED]> wrote: > After I posted my message, I tried that but I want to capture the > current value of 'id' at the time of function definition, not a > reference to it since it could change by the time the handler gets > called. This seems like it should be easy, but I'm kinda confused. How > do I capture the value of 'id' at the time I define that handler > function? > > Thanks for the reply! > > On Nov 27, 1:57 pm, "Erik Beeson" <[EMAIL PROTECTED]> wrote: > > > You could wrap your real callback in an anonymous function that adds the > > parameters that you want. Maybe something like (untested): > > > $.post('/ajax/asset/insert', { > > folder_tid : lastUploadedFolderTID, > > link : linkQueue[id] > > }, function(data, status) { handleAddLinkComplete.call(this, data, > > status, 123); }, 'json'); > > > Good luck with it. > > > --Erik > > > On 11/27/07, Rob Barreca <[EMAIL PROTECTED]> wrote: > > > > I commonly want to pass an ID or some other information I know to an AJAX > > > success handler. > > > > $.post('/ajax/asset/insert', { > > > folder_tid : lastUploadedFolderTID, > > > link : linkQueue[id] > > > }, handleAddLinkComplete, 'json'); > > > > In this example, I want to pass an ID to handleAddLinkComplete function. I > > > know I can do the following, but they seem crufty to me. > > > > 1. I can set a global variable with the link ID, but what if I have > > > a bunch of post calls, there are synchronous issues (I know I can do > > > async : > > > false too) > > > 2. I could have my /ajax/asset/insert callback return the link ID > > > back to me in the response, but it seems silly if I already know it. > > > > I would love to do something like... > > > > $.post('/ajax/asset/insert', { > > > folder_tid : lastUploadedFolderTID, > > > link : linkQueue[id] > > > }, { callback : handleAddLinkComplete, arguments : [123] }, 'json'); > > > > or something. > > > > What is the best way here or is my dream a reality? > > > > Cheers, > > > > -Rob