2012-03-16 13 views
13

私はテンプレートを絶対配置していますが、今度はメインテキストdivに動的な高さがあります。div 'height'からjqueryを使用してdivを 'top'に設定します。

テキストdivの高さの値を使ってフッターdivの上部の状態を設定しようとしました。

<script type="text/javascript"> 
    $("#footer").top($("#text").height()); 
    </script> 

は残念ながら、クロームのDevツールでエラーが発生します:

Uncaught TypeError: Object [object Object] has no method 'top' (anonymous function)

だから、私の問題のための任意のアイデアやヘルプ?

編集:

だから私は

$('#footer').css('top', $('#text').outerHeight() + 'px'); 

を試してみましたが、それがうまく機能し、それはこのトップ値にいくつかのピクセルを追加することが可能でしょうか?

答えて

17

.topを交換し

$('#footer').css('top', $('#text').height()); 
+0

が私に> Uncaught SyntaxError:予期しないトークン)を返します –

+0

おそらく、値の数値表現だけを返すので、ユニットをheight()のバックエンドにポップする必要があります。 – dougajmcdonald

+0

それは私の "jQuery(document).ready(function($){"私はそれを修正したの問題でした –

0

デバッガは正しいですが、jQueryはメソッドtopを抽象化しません。あなたはむしろ上)(あなたは.top呼び出さない、#footer divの上のCSSプロパティ 'トップ' を設定する必要があります.offset({top: somenumber})

http://api.jquery.com/offset/

+0

が、これは失敗しないだろう明白なセット? – Blazemonger

+1

@ mblase75:jQuery(実際にはブラウザ)は、まだ埋め込まれていなければそのCSSプロパティを作成します。より正確に言えば、すべてのCSSプロパティはいつでも使用できます。値があるかどうかによります。 – jAndy

+0

私は質問を間違って読んでいました。しかし、 'top'と' bottom' CSSプロパティの両方が同時に設定されていると(おそらくありそうもない)複雑なことを指摘する価値があるかもしれません。 OPが他人のコードを操作している場合は、 'bottom'プロパティを明示的にクリアして安全にする必要があります。 – Blazemonger

4

よう.css()を使用しますdiv自体。

$("#footer").css('top', $("#text").height() + "px"); 

またはそれらの線に沿って

+0

これは私のために働いた。私は要素に既存のCSSを持っていたので、.cssのバージョンが失敗したかどうかは分かりませんが、これに関係なく、これを修正するようです。 –

1

これを試してみてください。

$('#footer').style.css("top",$('#text').style.css("height")); 
+0

私のために働かなかった – williamcarswell

1

私がお勧めします: `top` CSSのプロパティがない場合は

<script type="text/javascript"> 
    jQuery(document).ready(function($){ 
     $('#footer').css('top', $('#text').outerHeight() + 'px'); 
    }); 
</script> 
関連する問題