我试图做这样的事情:
var $ul = $('.f-ul');
var ulMT = $ul.css("marginTop");
$ul.css({"marginTop":"" + math(ulMT+40) + ""px","opacity":"0"});
但我知道这是错的。有什么解决方案吗?
答案 0 :(得分:3)
$ul.css({"marginTop":"" + math(ulMT+40) + ""px","opacity":"0"});
// ^^ syntax error
除了语法错误之外,它应该可以正常工作。请注意语法突出显示在那一点上是如何搞乱的?这应该是你不正确终止字符串的第一个线索。
如果你删除了额外的“你得到:
$ul.css({"marginTop":"" + math(ulMT+40) + "px","opacity":"0"});
我假设您在某处定义了一个名为math
的函数。如果您不是,而您想要做的就是添加两个号码,则根本不需要math()
来电。
$ul.css({"marginTop":"" + (ulMT+40) + "px","opacity":"0"});
另外,我可以建议进行一些编辑,以便更容易阅读吗?
$ul.css({
marginTop: "" + (ulMT+40) + "px",
opacity: "0"
});
最后,$ul.css("marginTop");
不会返回数字。它返回一个类似"16px"
的字符串。这意味着你正在做这样的事情:
var ulMT = "16px";
var newMT = ulMT + 40 + "px";
console.log(newMt); // "46px40px"
这不是你想要的。您需要将该边距值解析为整数,以便将其用于数学运算。这是通过parseInt(x, 10);
完成的,其中x
是整数所需的字符串。
var ulMT = parseInt($ul.css("marginTop"), 10);