2013-05-27 102 views
1

我有一個問題,我得到框在我身邊。 第一個包含圖像,此圖像的高度未知。 第二個是這張圖片旁邊的左浮動div元素。 該面板的長度應與圖像的高度一樣長。使用jquery設置不同的高度

.image = container for image 
.panel = container for panel 
.image_post = contains image and panel 

我這樣做是與這個jQuery代碼:

$(document).ready(function() { 
    var currentHeight_Image = $('.image').height(); 
    var currentWidth_Image = $('.image').width(); 
    var currentWidth_Panel = $('.panel').width(); 
    var currentWidth_Image_Post = $('.image_post').width(); 
    $(".panel").css({"height": currentHeight_Image - 2}); 
    $(".image_post").css({"height": currentHeight_Image}); 
    $(".image_post").css({"width": currentWidth_Image + currentWidth_Panel + 2}); 
    $(".wrap").css({"width": currentWidth_Image + currentWidth_Panel + 2}); 
    });  

現在主要的問題是,我得到超過10這些圖片的,所以每個面板的高度是前一個不同。

該代碼工作正常,在第一個面板高度,但在第二個,它不工作,因爲它需要從第一個到第二個的高度。

我對jquery很安靜,對不起我的英文很抱歉,但我希望你能幫助我。

回答

1

在.image_post上使用jQuery選擇器爲每個循環運行a,假設這些是您想要迭代的容器,代碼示例將很快跟隨。

$(document).ready(function() { 
    $(".image_post").each (function() { 
     alert("starting fix"); 
     var currentHeight_Image = $('.image',this).height(); 
     var currentWidth_Image = $('.image',this).width(); 
     var currentWidth_Panel = $('.panel',this).width(); 
     var currentWidth_Image_Post = $(this).width(); 

     $(".panel").css({"height": currentHeight_Image - 2}); 
     $(this).css({"height": currentHeight_Image}); 
     $(this).css({"width": currentWidth_Image + currentWidth_Panel + 2}); 
    $(".wrap").css({"width": currentWidth_Image + currentWidth_Panel + 2}); 
    });  

}); 

我還沒有測試這個,但我希望這解釋了你應該做什麼。 這是在測試的jsfiddle ... 我仍然不能確定你正在嘗試做的,但是這將運行無論你是在不同的.image_post太計劃。 請注意,在你的例子是沒有.wrap類..

希望這有助於。 祝你好運。

+0

看起來像你的例子只有一個.image_post這是爲什麼?你說過你有很多圖片和很多.image_post元素不是嗎?請編輯jdFiddle? –

+0

好吧,我的錯,這裏是正確的版本 http://jsfiddle.net/vhyBB/2/ – Synturas

+0

在這裏,我已經運行在jdFiddle,現在它由你來修復算法來做你正在計劃它做...我會很感激,如果你接受這個答案.. –