2012-02-15 6 views
0

私は一連のボックスがあります。高さが分からないときに、一連のボックスの元の高さを保存するにはどうすればいいですか?

<div class="box"></div> 
<div class="box"></div> 
<div class="box"></div> 
<div class="box"></div> 

CSS:

.box { 
    height: auto; 
} 

実際の高さは、ボックスは、コンテンツがロードされている一度だけ設定されているので、私は開始時にそれらの高さを知りませんの。間違って

$(".box").each(function(){ 
    boxHeight = $(this).height(); 
}); 

Buは、基本的に私はそれらの高さを保存し、後でその後、jQueryのデータを使用するための高さを保存するために必要な値を格納するオブジェクトの場合

+0

'高さ()'メソッド、プロパティではないです。 '$(this).css( 'height'、boxHeight)'を実行する必要があります。達成しようとしていることは不明です。 boxHeightとは何ですか?どの時点であなたのboxHeightが何であるか知っていますか? – mrtsherman

+0

は –

答えて

1

に、後で再利用できるようにする必要があります。

これは、それぞれを格納するジャスパーのフィードバックに基づいて私の答えを更新し、あなたはその後、

$.data(whatever box, 'height'); 
+0

を更新しました。これよりもはるかに速い '$ .data()'メソッドを使うことができます: '$ .data(this、 'height'、$(this).height());' – Jasper

+0

データ属性の使用 – Jlange

+0

jQueryデータ関数のさまざまな使用のパフォーマンス差を示すJSPerfがあります:http://jsperf.com/jquery-data-vs-jqueryselection-data/22 – Jasper

0

を経由して、後に各1に対して高さにアクセスすることができますフィドル

http://jsfiddle.net/mrtsherman/5LvJT/

$('.box').each(function() { 
    $.data(this, 'height', $(this).height()); 
}); 

$('.box').click(function() { 
    var height = $.data(this, 'height'); 
});​ 

を追加しました配列内の高さ:

0

このような何か:

$(".box").each(function() { 
    var t = $(this); 
    t.data("originalHeight",t.height()); 
}); 
0
$('.box').each(function() { 
    $(this).data('height', $(this).height()); 
}); 

$(".box").height($(".box").data('height')); 
関連する問題