如何在动画jQuery中使用 - =属性后插入变量?
var slideObject = $('.object').width();
$('.next').on('click', function(){
event.preventDefault();
//See -=slideObject
$(slideContainer).animate({ marginLeft: -=slideObject}, 500);
});
控制台出错:
未捕获的SyntaxError:意外的令牌 - =
答案 0 :(得分:1)
您没有正确使用您的活动:
$('.next').on('click', function( event ){ // << pass as argument
你也应该使用"-="+ variable
var slideObject = $('.object').width();
$('.next').on('click', function( event ){
event.preventDefault();
$(slideContainer).animate({ marginLeft: "-="+ slideObject}, 500);
});
查看我们作为 Object Literal 传递给.animate()
方法的参数:
var obj = {
marginLeft : 200, // Valid (Number)
marginRight : "100", // Valid (String)
marginTop : topValue, // Valid (Variable)
marginBottom : "100px" // Valid (String)
}
(确切地说,您可以将上述内容用作$(slideContainer).animate(obj, 500);
)
在此示例中的位置:
var obj = {
marginLeft : -=200, // Unexpected Token Error
marginRight : "-=100" // Valid (String)
}
因此jQuery通常期望它是一个有效的Object。通常是一个字符串值,如"200px"
为了让我们的生活更轻松,我们可以使用数字值:200
,而不是使用px
默认情况下将其内部转换为字符串:"200px"
。
它允许我们在Animate对象内传递{marginLeft : margVal}
之类的变量,但-=margVal
不再是有效的对象属性值,而是 Unexpected token - = 。如果将它转换为String将您的运算符与变量连接起来,jQuery将会看到"-=200"
一个有效的字符串。
另请注意,如果slideContainer
已经是jQuery对象,则无需再将其包装到jQuery $()
中。