Jquery使用变量的多css

时间:2011-04-05 11:47:51

标签: jquery

我遇到了这个jquery css的问题:

像这样,它适用于所有浏览器,但ie9:

  $(".%id%faderbox").css({
    "background-image": "url("+bgimage+")",
    "padding": "%id=xtrapadding%px",
    "height": dooheight,
    "width": doowidth,
    "border": doofaderborder
 });

dooheight和doowidth是在页面上进一步声明的变量,并且总是返回ie:133px

注意:px在最后。 注意:不是像“133px”

那样被包围

现在ie9的问题似乎是它不喜欢宽度和高度值而没有封闭的qoutes“”

所以..好吧我想,我会这样做,例如:

"width": '"' + doowidth + '"',

但这在任何浏览器中都不起作用,即使警报测试清楚地显示doowidth的值现在返回:“133px”而不是133px

硬编码:“width”:“133px”,适用于所有浏览器,包括9

我无法理解为什么它会在所有浏览器中出现:

"width": '"' + doowidth + '"',

2 个答案:

答案 0 :(得分:1)

%id%id=xtrapadding%废话的来源是什么?

在字符串中添加引号是没有用的。他们已经是弦乐了。引号是用于分隔字符串文字的语法的一部分:它们实际上不在字符串本身中,因此添加它们是错误的。

在我看来,出于某种原因,在某些情况下,doowidth不会被视为字符串。你可以通过附加虚无来强迫它。试试这个:

$(".%id%faderbox").css({
    "background-image": "url("+bgimage+")",
    "padding":          "%id=xtrapadding%px",
    "height":           dooheight + '',
    "width":            doowidth + '',
    "border":           doofaderborder + ''
});

答案 1 :(得分:-1)

尝试使用单引号

'"' + doowidth + '"'