如果子高度发生变化,我试图动态更改多个父项的高度。
每个父母只有一个孩子使用z-index样式..
这是我根据我发现的内容尝试做的事情
HTML
<div class="parent">
<div class="child"></div>
<div class="child2"></div>
<div class="child3"></div>
</div>
<br>
<div class="parent">
<div class="child" style="z-index:1;"></div>
<div class="child2"></div>
</div>
<br>
<div class="parent">
<div class="child" ></div>
<div class="child2" style="z-index:1;"></div>
</div>
JQUERY
$(".parent").each(function() {
var divIndex = ;
var divHeight = ;
if ($('this').children().css('z-index') == '1')
{
// Get height and index of the single specific element with z-index css
}
$('this').resize();
$('this').delegate();
});
答案 0 :(得分:1)
您的代码充斥着javascript错误,更具体地说是使用$('this'),取出单引号:$(this);
由于使用了id而不是类,因此大多数CSS都不会样式化。
这是一个更新的jsfiddle,它可以纠正错误并让你在正确的轨道上迭代父母子div:
$('.parent').children().each(
function(){
var divIndex = null ;
var divHeight = null ;
if($(this).css('z-index') === '1') {
alert('z-index is 1');
}
$(this).parent().resize();
$(this).parent().delegate();
}
);
这是一些“纠正”的CSS:
.parent {
width: 100px;
padding: 10px;
background:#ff0000;
}
.child2 {
position: absolute;
width: auto;
left: 0px;
right: 0px;
height:20px
}
.child {
position: absolute;
width: auto;
left: 0px;
right: 0px;
height:50px
z-index:1;
}
.child3 {
position: absolute;
width: auto;
left: 0px;
right: 0px;
height:100px
}
答案 1 :(得分:1)
我会这样做:
$('.parent').children().filter(function() {
return this.style.zIndex==='1';
}).each(function(index, elem) {
var divIndex=$(elem).index(),
divHeight=$(elem).css('height');
$(elem).resize();
$(elem).delegate();
});
在你的小提琴中,z-index = 1的元素都没有高度。 不知道调整大小和委托函数的作用,但我认为它们是你正在使用的函数。
要在调整大小时动态地将父“.parent”元素调整为与z-index = 1的元素相同的高度,您可以这样做:
$('.parent').children().filter(function() {
return this.style.zIndex==='1';
}).each(function(index, elem) {
var divIndex=$(elem).index(),
divHeight=$(elem).css('height');
$(elem).on('resize', function() {
$(this).closest('.parent').css('height', $(this).height());
});
});