javascript just keeps amazing me more and more :) thanks for the insight! On Sat, Dec 13, 2008 at 8:49 PM, Jeffrey Kretz <jeffkr...@hotmail.com> wrote: > > Mike's suggestion involves creating a javascript "closure". > > There are a number of good articles on closues. > > http://www.google.com/search?hl=en&q=javascript+closures&rlz=1W1GGLL_en > > But essentially, when you create a function that has a reference to a value > outside of its scope, that function is created as a closure, with its own > context that has access to those variables, even when they've been changed on > the global scope. > > Try this: > > var x = 25; > var fn = function(val){ > return function(){ > alert(val); > }; > }(x); > x = 30; > fn(); > > The alert will be for 25, rather than 30, as the closure has its own context > now for the x variable. > > The downside to closures is that handled incorrectly, they can cause memory > leaks. > > But review of the many articles on the subject will help keep that from > happening. > > JK > > > -----Original Message----- > From: jquery-en@googlegroups.com [mailto:jquery...@googlegroups.com] On > Behalf Of Jan Limpens > Sent: Saturday, December 13, 2008 2:28 PM > To: jquery-en@googlegroups.com > Subject: [jQuery] Re: passing args to a delegate > > > while this might keep the browser from crashing, I wonder what values > these parameters will have, when the event finally occurs. The ones I > have passed the very first time? I thought they would have been > destroyed by then, as we left this scope long ago ... > But I'll try it out :), thanks! > > On Sat, Dec 13, 2008 at 3:22 AM, Mike Nichols <nichols.mik...@gmail.com> > wrote: >> >> Try this: >> success: function() { registerImageForms(id,key,type); } >> >> >> On Dec 12, 5:13 pm, "Jan Limpens" <jan.limp...@gmail.com> wrote: >>> Hello, >>> >>> I have the following code: >>> >>> var registerImageForms = function(id, key, type) { >>> var sizes = ['small', 'medium', 'large']; >>> $('#panel-images fieldset:visible').remove(); >>> $.each(sizes, function(i, item) { >>> var $clonedForm = $('#panel-images fieldset:hidden').clone(); >>> $("legend", $clonedForm).text(item); >>> $("[name='id']", $clonedForm).val(id); >>> $("[name='key']", $clonedForm).val(key); >>> $("[name='type']", $clonedForm).val(type); >>> $("[name='size']", $clonedForm).val(item); >>> $("img", $clonedForm).attr('src', "/imagem/article/" + key + >>> "/" + item + ".png"); >>> $("#panel-images").append($clonedForm); >>> $("form", $clonedForm).ajaxForm({ >>> success: registerImageForms >>> }); >>> $clonedForm.show(); >>> }); >>> >>> }; >>> >>> Success has no args, so everything is rendered empty, after posting >>> the form. If I pass arguments as >>> success: registerImageForms(id, key, type) >>> >>> The browser crashes and it makes sense, because at the time this >>> fires, these identifiers mean nothing. But how do I pass them? >>> >>> -- >>> Jan > > > > -- > Jan > >
-- Jan