对于我正在维护的jQuery应用程序,我最近做了一些更改,包括使用这样的代码:
$someElement.click(function (e) {
e.preventDefault();
$someOverlay.css('left', e.pageX);
$someOverlay.css('top', e.pageY);
$someOverlay.fadeIn();
});
并将其修改为:
$someElement.click(function (e) {
e.preventDefault();
$someOverlay.css({
'left': e.pageX,
'top': e.pageY
});
$someOverlay.fadeIn();
});
我发现可以简单地将对象传递给$.css()
方法,从而进行了更改。当然,正如我不习惯的那样,我开始考虑这个的性能影响。在我看来,调用$.css()
一次比调用两个$.css()
调用更有效...但是,这也是JavaScript,这是一种我不熟悉的语言,比方说,C#
那么,问题:上面的代码是一种将一些CSS应用到元素的更高效的方法吗?
答案 0 :(得分:4)
第一个答案:几乎可以肯定无关紧要。
第二个答案:如果你通过jQuery css
方法(这绝非易事!),你会发现使用组合形式(传入spec对象)可能更有效。 / p>
答案 1 :(得分:1)
第二种变体被描述为良好做法here,所以我认为表现会更好。
// passing object literals as parameters is good practice
var $foo = $( '#foo' );
$foo.css({
'color': 'red',
'width': '200px',
'height': '200px'
});