2013-05-27 70 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,现在它由你来修复算法来做你正在计划它做...我会很感激,如果你接受这个答案.. –