JQuery.load可以工作,但不能。调整大小
所以这个函数的onLoad部分工作得很好,但是当我调整窗口大小时,它不会调整高度。仅使用onLoad,每次调整窗口大小以使div高度相等时,我都需要刷新页面,但不确定原因。resize不起作用 我犯了错误吗JQuery.load可以工作,但不能。调整大小,jquery,load,resize,Jquery,Load,Resize,所以这个函数的onLoad部分工作得很好,但是当我调整窗口大小时,它不会调整高度。仅使用onLoad,每次调整窗口大小以使div高度相等时,我都需要刷新页面,但不确定原因。resize不起作用 我犯了错误吗 //equalize funciton function equalHeight(group) { tallest = 0; group.each(function() { thisHeight = $(this).height(); if(t
//equalize funciton
function equalHeight(group) {
tallest = 0;
group.each(function() {
thisHeight = $(this).height();
if(thisHeight > tallest) {
tallest = thisHeight;
}
});
group.height(tallest);
}
$(窗口).load(函数(){
等高($(“#div#u right,#div#u left,#div#u bottom,.border”);
});
$(窗口)。调整大小(函数(){
等高($(“#div#u right,#div#u left,#div#u bottom,.border”);
});
$(文档).ready(函数(){
等高($(“#div#u right,#div#u left,#div#u bottom,.border”);
});
将上面的所有JavaScript替换为以下内容:
<!-- Include jQuery somewhere up here -->
<script type="text/javascript">
// Equalize function
function equalHeight(group) {
tallest = 0;
group.each(function() {
thisHeight = $(this).height();
if(thisHeight > tallest) { tallest = thisHeight; }
});
group.height(tallest);
}
(function($){
$(window).resize(function() {
equalHeight($("#div_right, #div_left, #div_bottom, .border"));
}).resize();
})(jQuery);
</script>
//均衡函数
功能相等高度(组){
最高=0;
组。每个(函数(){
thisHeight=$(this).height();
如果(thisHeight>最高){最高=thisHeight;}
});
身高(最高);
}
(函数($){
$(窗口)。调整大小(函数(){
等高($(“#div#u right,#div#u left,#div#u bottom,.border”);
}).resize();
})(jQuery);
这样做有用吗?一旦您通过脚本使用内联css设置了高度,它们在调整大小之前、期间和之后都将是相同的固定高度……与页面加载时设置的值相同。那个高度仍然是直线 如果不存在其他内联css,则需要使用
removeAttr('style')
,或者将每个css的内容包装到另一个元素中,检查内部包装的高度,并使用该值设置主元素
编辑:尝试此版本,它包装内部并使用内部来测试高度
//equalize funciton
function equalHeight(group) {
tallest = 0;
group.each(function() {
thisHeight = $(this).find('.inner_wrap').height();
if(thisHeight > tallest) {
tallest = thisHeight;
}
});
group.height(tallest);
}
$(document).ready(function() {
var $group=$("#div_right, #div_left, #div_bottom, .border")
$group.wrapInner('<div class="inner_wrap">');
equalHeight($group);
});
//均衡函数
功能相等高度(组){
最高=0;
组。每个(函数(){
thisHeight=$(this.find('.internal_wrap').height();
如果(此高度>最高){
最高=此高度;
}
});
身高(最高);
}
$(文档).ready(函数(){
变量$group=$(“#div_right,#div_left,#div_bottom,.border”)
$group.wrapInner(“”);
等高($组);
});
编辑:如果组中不同班级的填充不同,则会出现陷阱。如果是这种情况,则需要更改css以使填充在内部而不是外部,或者需要在函数中添加额外的数学
//equalize funciton
function equalHeight(group) {
tallest = 0;
group.each(function() {
thisHeight = $(this).css({'height':'auto'}).height();
if(thisHeight > tallest) {
tallest = thisHeight;
}
});
group.height(tallest);
}
$(window).on('load resize',function() {
equalHeight($("#div_right, #div_left, #div_bottom, .border"));
});
//“on”函数需要jquery1.7,我想
例如fiddle:不工作意味着函数是否正在调用,或者
函数中是否存在任何错误。resize
函数?工作正常您真正想要的是什么?您是否试图说,如果JS已经设置了新的高度值,则无法设置新的高度值?不是真的。@Marcel-一点也不这么说!但是,一旦“高度”设置为“内联”,它就不再是流体。这一部分是绝对正确的…在移除现有高度之前,它是固定的。这对于缩小窗口非常有用,但当我将窗口拖回时,我再次遇到刷新问题。对不起,回复太晚了…请检查这把小提琴。在这两种情况下,它都调整得很好,使窗户更小或更大。如果你能提供一个链接到这个场景,或者一个问题存在的地方,我们可以看看它来解决你的问题,谢谢。
//equalize funciton
function equalHeight(group) {
tallest = 0;
group.each(function() {
thisHeight = $(this).css({'height':'auto'}).height();
if(thisHeight > tallest) {
tallest = thisHeight;
}
});
group.height(tallest);
}
$(window).on('load resize',function() {
equalHeight($("#div_right, #div_left, #div_bottom, .border"));
});