0
 var $thingy = $('.thingy'),
     $window = $(window);

 $window.on('resize', function(){
       thingy.width($window.width()/12);
 });

是否可以在页面中添加更多.thingys 并在不重新查询的情况下调整它们的大小?

我知道以下将起作用:

 var $window = $(window);

 $window.on('resize', function(){
       $('.thingy').width($window.width()/12);
 });     

问题是,我不.thingy经常在页面中添加 s,这使得创建新的 jQuery 对象和快速重新查询 DOM 看起来像是很多开销。

有没有更好的办法?

4

2 回答 2

2

您可以简单地重新分配给变量:

var $window = $(window),
    $thingy = $('.thingy');
$window.on('resize', function(){
    $thingy.width($window.width()/12);
});


// then sometime:
$thingy = $('.thingy');
// or:
$thingy = $thingy.add(elements)
于 2012-05-24T17:34:44.883 回答
1

每当你添加一个新的.thingy,更新选择

$thingy = $('.thingy');

或者

$thingy = $thingy.add(the_new_thingy)

当然$thingy必须在两个地方都可见。

于 2012-05-24T17:32:50.490 回答