Javascript jQuery-在.css()方法中组合变量和字符串
如何在jQuery中的Javascript jQuery-在.css()方法中组合变量和字符串,javascript,jquery,Javascript,Jquery,如何在jQuery中的.css()方法中将字符串和变量组合为属性 如果设置background-position-x和background-position-y,我可以很容易地做到这一点,但Firefox和Opera不支持它们 function bgPos() { jq('element').each(function() { var bgPosX = 10; var bgPosY = 20; jq(this).css("backgroun
.css()
方法中将字符串和变量组合为属性
如果设置background-position-x
和background-position-y
,我可以很容易地做到这一点,但Firefox和Opera不支持它们
function bgPos() {
jq('element').each(function() {
var bgPosX = 10;
var bgPosY = 20;
jq(this).css("background-position", "bgPosX + 'px', bgPosY + 'px'");
});
}
.css
不接受3参数,因此您可以通过提供一个对象来实现所需的功能
大声说
jq(this).css({ backgroundPosition: bgPosX + "px " + byPosY + "px" });
去掉变量周围的引号:
jq(this).css("background-position", bgPosX + 'px' + bgPosY + 'px');
去掉第二个逗号…这里的其他答案是不正确的,因为jQuery的
css()
方法不支持3个参数,它们将导致您的bgPosY
值被完全忽略(默认为50%
)。我不确定其中一个是如何获得多个向上投票的
这里有两个选项: 字符串串联 您可以使用
+
符号将两个变量连接成一个字符串:
.css({ backgroundPosition: bgPosX + "px " + byPosY + "px" })
请注意,我是如何删除了px
和bgPosY
之间的逗号,并添加了一个空格来分隔这两者:“px”
设置单个属性
或者,您可以只设置单个backgroundPositionX
和backgroundPositionY
属性:
(编辑:正如Blazemonger在中指出的,Firefox不支持这些单独的属性,因此如果您希望支持Firefox,您应该使用第一个选项)
值得注意的是,我在这里使用的是对象表示法,而不是字符串,这仅仅是因为我发现这更简洁。第一个示例可以继续使用
“background-position”
,第二个示例可以继续使用“background-position-x”
和“background-position-y”
。删除变量名称周围的引号。css(“背景位置”,bgPosX+'px',bgPosY+'px');啊!我应该在没有引号的情况下尝试,我不知道为什么我坚持认为整个语句必须用引号包装。非常感谢。我不知道为什么这个答案被两次否决。这是错误的。jQuery的css()
方法不接受像您在这里所做的那样的3个参数。@JamesDonnelly,很抱歉,因为我只关注那里给出的问题。@JamesDonnelly我没有看到3个参数,但在这里传递了1个。@Bart您可以在这里查看编辑历史:@Mritunjay jQuery的css()
方法接受一个或两个参数。请参阅jQuery的文档:。你刚才复制了我在答案中的内容。第一种方法更具普遍性;Firefox(目前)不支持单独的X和Y属性。@Blazemonger啊,你说得很对。我不知道Firefox不支持这一点。我想应该是这样,但这是Mozilla为您准备的——标准符合错误。
.css({
backgroundPositionX: bgPosX,
backgroundPositionY: bgPosY
})