将函数参数传递给fadeOut回调

时间:2014-03-07 09:12:00

标签: javascript jquery

此功能最多可接受三个参数。我希望能够将这些参数传递给回调函数,以便我能够在if语句中检查参数。

我检查了控制台日志,如果回调中存在任何参数,并且没有任何参数。

function foobar(x, y, z) {
    $("div").fadeOut(300, function() {
        if(arguments.length == 1) {
            //nothing
        } else if(arguments.length == 2) {
            $("div").html(x + y).fadeIn(300);
        } else if(arguments.length == 3) {
            $("div").html(x + y + z).fadeIn(300);
        }
    });
}

1 个答案:

答案 0 :(得分:1)

arguments指的是最近的函数,所以这里是fadeOut回调。将foobar函数的参数分配给新变量:

function foobar(x, y, z) {
    var foobarArguments = arguments;

    $("div").fadeOut(300, function() {
        if(foobarArguments.length == 1) {
            //nothing
        } else if(foobarArguments.length == 2) {
            $("div").html(x + y).fadeIn(300);
        } else if(foobarArguments.length == 3) {
            $("div").html(x + y + z).fadeIn(300);
        }
    });
}