Javascript 变量后-=属性

Javascript 变量后-=属性,javascript,jquery,Javascript,Jquery,如何在animate jQuery中的-=属性之后插入变量 var slideObject = $('.object').width(); $('.next').on('click', function(){ event.preventDefault(); //See -=slideObject $(slideContainer).animate({ marginLeft: -=slideObject}, 500); }); 控制台中的错误: 未捕获的语法错误:意外

如何在animate jQuery中的-=属性之后插入变量

var slideObject = $('.object').width();

$('.next').on('click', function(){
    event.preventDefault();

    //See -=slideObject
    $(slideContainer).animate({ marginLeft: -=slideObject}, 500);
});
控制台中的错误:

未捕获的语法错误:意外标记-=


您没有正确使用事件:

$('.next').on('click', function( event ){ // << pass as argument
查看我们作为对象文本传递给
.animate()
方法的参数:

var obj = {
   marginLeft   : 200,       // Valid  (Number)
   marginRight  : "100",     // Valid  (String)
   marginTop    : topValue,  // Valid  (Variable)
   marginBottom : "100px"    // Valid  (String)
}
(是的,完全正确,您可以将上述内容用作
$(slideContainer).动画(obj,500);

其中,在本例中:

var obj = {
   marginLeft   : -=200,     // Unexpected Token Error
   marginRight  : "-=100"    // Valid  (String)
}
因此jQuery通常期望是一个有效的对象。通常是字符串值,如
“200px”

为了让我们的生活更轻松,它允许我们使用一个数值,比如:
200
,它将在内部使用
px
作为默认值转换为字符串:
“200px”

它允许我们在动画对象内部传递一个变量,如
{marginLeft:margVal}
,但
-=margVal
不再是有效的对象属性值,而是意外的标记-=。如果将其转换为将运算符与变量连接在一起的字符串,jQuery将看到
“-=200”
一个有效字符串


另外请注意,如果您的
slideContainer
已经是一个jQuery对象,则无需将其再次包装到jQuery
$()

中。是的,这不是有效的语法。它应该是一个字符串,因此,生成一个字符串。^
'-='+slideObject
。。。在
“-=”
var obj = {
   marginLeft   : -=200,     // Unexpected Token Error
   marginRight  : "-=100"    // Valid  (String)
}