我没有看到此代码有任何问题,但它没有按预期工作。
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',它就可以了。我做错了什么?
答案 0 :(得分:5)
您正在使用名为slideDirection
的属性创建对象文字,您没有使用参数的值。为此,您需要分两步创建一个对象:
var obj ={};//empty object literal
obj[slideDirection] = '-=940';//assign a new property
$('.slide').animate(obj, 400);
这应该可以解决问题。您的json格式的对象如下所示:{"slideDirection":"-=940"}
而 mine (或按照我的解释创建的对象)如下所示:{"right":"-=940"}
。如果我没弄错的话,后者就是你所需要的