将参数传递给函数

Passing arguments to functions

本文关键字:函数 参数传递      更新时间:2023-09-26

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

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

如果我在animate方法中只使用字符串"right",它会起作用。我做错了什么?

您正在创建一个具有名为slideDirection的属性的对象文字,但没有使用参数的值。要做到这一点,您需要通过两个步骤分别创建一个对象:

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

这就行了。json格式的对象看起来是这样的:{"slideDirection":"-=940"},而mine(或我解释过的创建对象)看起来是这样:{"right":"-=940"}。如果我没有弄错的话,后者就是您所需要的