将参数传递给函数

Jez*_*mas 0 javascript jquery

我没有看到这个代码有什么问题,但它没有按预期工作.

function slide(slideIndex, slideDirection) {
    console.log(slideDirection); // outputs 'right'
    $('.slide').animate({slideDirection: '-=940'}, 400);
}    

$(function(){
    $('.prev','.slide').click(function (e) {
        e.preventDefault();

        var slideIndex = $(this).closest('.slide').index(),
            slideDirection = 'right';

    slide(slideIndex, slideDirection);
    });
});
Run Code Online (Sandbox Code Playgroud)

如果我在animate方法中只使用字符串'right',它就可以了.我究竟做错了什么?

Eli*_*gem 5

您正在使用被调用的属性创建对象文字slideDirection,您没有使用参数的值.要做到这一点,您需要分两步创建一个对象:

var obj ={};//empty object literal
obj[slideDirection] = '-=940';//assign a new property
$('.slide').animate(obj, 400);
Run Code Online (Sandbox Code Playgroud)

这应该够了吧.你的json格式的对象看起来像这样:{"slideDirection":"-=940"}我的(或者像我解释的那样创建的对象)看起来像这样:{"right":"-=940"}.如果我没弄错的话,后者就是你所需要的