2010-07-11 88 views
1

我在我的Ajax.Request中使用我的jsp。 (原型)匿名函数,添加参数

不知何故,我可以在匿名函数onComplete中传递额外的参数?

例如,

function save() { 
    var pars = "param1=date"; 
    new Ajax.Request('algo.ctr', { 
     parameters: pars, 
     onComplete: f, 
    }); 
} 
var f = function (e) { 
    alert(e.status); 
} 

我想用参数e还包括其他。

我不想使用全局变量。

这个想法是运行多个并发请求,当每个人完成与我放置的元素做一些事情。

回答

5

通常,您不能将“参数”添加到Prototype函数的本机签名。但是你可以做这样的事情:

function mySuccessFunction(a, b, c) { 
    alert("Success!" + a + b + c) ; 
} 

new Ajax.Request(url, { 
    method: 'get', 

    parameters: {company: 'example', limit: 12} // use an object literal 
    // for parameters, not a query string 

    onSuccess: function(transport) { 
    mySuccessFunction(transport, 'param1', 'param2') ; 
    } 
}); 

注意这里我传递的参数作为对象常量和连接到的onSuccess事件,而不是onComplete时间。

+0

谢谢,很好解释=) – 2010-07-11 12:45:43