0

我看不出这段代码有什么问题,但它没有按预期工作。

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);
    });
});

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

4

1 回答 1

5

您正在使用名为 的属性创建一个对象文字slideDirection,您没有使用参数的值。为此,您需要分两步分别创建一个对象:

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

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

于 2012-09-06T08:14:18.740 回答