jquery post传递函数的多个参数?

时间:2014-10-23 21:13:43

标签: javascript jquery arguments

这可能是一个愚蠢的问题,但是当我做jquery post时,我无法找到一种方法将多个参数传递给函数。

我有类似的东西

$.post("<?php echo site_url("scores")/getScore/?>/", showScore);

我有一个php函数getScore,它将echos json_encode数据传递给javascript函数showScore。

理想情况下,我想做的事情是这样的:

var argument1 = 100;

$.post("<?php echo site_url("scores")/getScore/?>/", showScore(json_encoded_data_from_getScore, argument1));

1 个答案:

答案 0 :(得分:1)

在您的案例中没有必要使用参数。 在上面的示例中,变量argument1将在showScore(json_encoded_data_from_getScore)内可见,因为它将关闭此函数。 如果你需要参数,你应该把你的函数调用包装成像这样的

var argument1 = 100;
var argument1 = 'foo bar';

$.post("<?php echo site_url("scores")/getScore/?>/", 
    function(theArgument1, theArgument2) {
         // (2) arguments are in closure
         return function(data) { // (3) this functions will be returned from self-called function 
                                 // and then called with parameter 'data' as success handler 
             showScore.call(this, data, theArgument1, theArgument2); // (4) it's time to invoke 
                                                                     // showScore with
                                                                     // required parameters 
         }
    }(argument1, argument2) // (1) this function calls itself to create closure
);