根据标题确实。
如果注意到,如果我检查$(elem).css('margin-top')
它会返回0px
,即使我没有明确设置此样式,无论是内联还是样式表。
基本上我每次将鼠标悬停在一个元素上时设置边距(垂直对齐某些内容),所以宁愿这样做一次。
我无法在页面加载时设置对齐,因为隐藏了元素(display:none),因此需要在显示它们时完成。
答案 0 :(得分:4)
if(!$(elem).data('hasSetMargin')){
$(elem).css('margin-top', someValue);
$(elem).data('hasSetMargin', true);
}
答案 1 :(得分:2)
多次设置有什么问题?
看起来您正在尝试尽早优化代码。
答案 2 :(得分:1)
这并不容易分辨,因为有很多来源会影响margin-top
等风格的价值。
但是,你不需要说出真的因为:
addClass
/ removeClass
/ toggleClass
)来改进代码,并使用纯静态CSS(使用类选择器)设置元素样式而不是自己设置样式。这有使您的代码可读的额外好处。关于可读性 - 你还想读什么?这样:
function() {
$(selector).css('margin-top', '10px').css('border', '2px red solid');
}
或者这个:
function() {
$(selector).addClass('update-pending');
}