Tuesday, October 13, 2009

Javascript custom function generator

This example uses a javascript lambda function to generate a custom call inside a for loop.
Code from an event function for an ExtJs core.



for k in ...
var rid = content[k].id;
rate.on( "change", function(rid) { // receives current rid value
return function(e) {
Ext.Ajax.request({
url:"/rate",
success: function() {
},
failure: function() {
alert( "unable to rate" );
},
params:{id:rid, value: e.value}
});
}
}(rid) ); // pass rid with current value
...


The parameter rid is evaluated 'on the fly'. If it was sent in an usual way, function would evaluate rid as last context[k].id cycled.


1 comment: