2012-03-16 39 views
13

Çok sayıda mutlak konumlandırma içeren bir şablonum var, şimdi ana metin div dinamik bir yüksekliğe sahip ve bundan sonra gelen dinamik bir altbilgiye ihtiyacım var.CSS div 'height' den jquery ile div 'top' set

Altbilgi div'inin üst halini, metin div'undan yükseklik değeriyle ayarlamaya çalıştım.

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

Yani herhangi bir fikir ya da benim sorun için yardım: Maalesef

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

, Chrome Dev araçları hata atıyor?

Düzenleme:

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

denedik ve bu üst değere bazı px eklemek mümkündür, iyi çalışıyor?

cevap

17

ile .top değiştirin

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

beni> Uncaught SyntaxError: Beklenmeyen belirteç) –

+0

getiriyordur, muhtemelen değeri sayısal gösterimini döndürdüğünden, birimi yüksekliğin arka ucunda() açmanız gerekir. – dougajmcdonald

+0

benim "jQuery (document) .ready (function ($) {" ben onu tamir ettim. –

0

Hata ayıklayıcı doğru, jQuery bir yöntem belirtmiyor top. Sen oldukça üzerine) (Sen .top deme, #footer div css özelliği 'top' ayarlamanız gerekir .offset({top: somenumber})

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

+0

bu başarısız olmaz 'top' css özelliği değilse açıklık ayarlandı mı? – Blazemonger

+1

@ mblase75: jQuery (tarayıcı aslında), henüz doldurulmamışsa bu css özelliğini oluşturur. Daha doğru bir şekilde, tüm css özellikleri her zaman kullanılabilir, sadece bir değere sahip olup olmadığına bağlıdır. – jAndy

+0

Soruyu yanlış anladım - ancak, hem "top" hem de "bottom" css özelliklerinin aynı anda ayarlanmış olması durumunda ortaya çıkabilecek (olası) bir komplikasyonu işaret etmeye değer olabilir. OP bir başkasının kodunu değiştiriyorsa, 'alt' özelliği güvenli olarak açık bir şekilde temizlenmelidir. – Blazemonger

4

gibi .css() kullanacağı div kendisi.

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

ya da bu doğrultuda

+0

Bu benim için çalıştı. .css sürümünün öğe üzerinde varolan bir css olduğu için başarısız olup olmadığından emin değilim, ancak, bunun düzeltileceği anlaşılıyor. –

1

bu deneyin:

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

Benim için işe yaramadı " – williamcarswell

1

öneririm:

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