在jQuery.css()中有条件地设置属性

时间:2011-06-24 16:31:11

标签: jquery html css

我在页面上有40个foo,并且每个都在另一个函数中分配了一个左/上值。

$('.foo').css({
  top: isOn ? current_top_value_here : 500,
  left: isOn ? current_left_value_here : 500
});

所以,我想离开顶部&如果isOn为真,则左侧属性未经修改。我怎么能这样做?

2 个答案:

答案 0 :(得分:5)

这样您就可以确保只在需要时添加它们。首先使用您想要分配的值设置对象,并有条件地添加更多。然后,您可以将对象传递给.css()

var cssProperties={
    'color' : 'yellow',
    ...
};

if (isOn) {
    cssProperties.top=500;
    cssProperties.left=500;
    /* alternative: $.extend(cssProperties, { 'top': 500, 'left': 500 }); */
}

$('.foo').css(cssProperties);

答案 1 :(得分:2)

最好的办法可能就是根本不打电话。如果你有其他css,你在同一个声明中设置,只需将它拆开:

if(!isOn){
  $('.foo').css({
    top: 500,
    left: 500
  });
}

$('.foo').css({
   // other stuff
});