5

我是使用原型库的初学者。我想知道我们如何将多个参数传递给 Prototype 中的 onSuccess/onFailure 函数?例如:-

new Ajax.Request('testurl',{
        method: 'post',
        parameters: {param1:"A", param2:"B", param3:"C"},
        onSuccess: fnSccs,
        onFailure: fnFail
        })

在我的成功函数 fnSccs 中:-

function fnSccs(response)
{
    alert(response.responseText);
}

我想将一个新参数传递给 fnSccs 函数。这怎么可能。谢谢你的帮助。

4

1 回答 1

7

您可以将您的成功函数包装到另一个接收所需参数的函数中,并返回您的旧函数:

new Ajax.Request('testurl',{
                method: 'post',
                parameters: {param1:"A", param2:"B", param3:"C"},
                onSuccess: mySuccess('myValue1', 'myValue2'),
                onFailure: fnFail
                })

function mySuccess(param1, param2){
  return function(response){ // Your old success function
    alert(param1);  // The parameter still accessible here
    alert(param2);
    alert(response);
  }
}

发生的情况是,当您调用mySuccess(...)旧函数时,会返回,但您仍然可以访问参数,因为变量仍然分配在外部闭包上。

您可以在此处查看正在运行的代码段。

于 2009-07-24T07:51:19.083 回答