2012-03-22 45 views
0

确定Minheight并通过JavaScript。它工作成功两次,但相同的代码不能在第三次调用。这一个(document.getElementById(“rightadmin”)。style.minHeight = wrapHeight +'px';)不起作用。更令人惊讶的是,如果我让第三名升到第二名,那么它会起作用,然后第三名不起作用。所以基本上无论我在第二个之后放置什么都行不通。document.getElementById();不能第三次工作

的JavaScript:

function height(){ 
var dheight= ($(document).height()); 
var wheight= ($(window).height()); 
if(dheight>wheight){ 
var wrapHeight= dheight; 
} 
else { 

var wrapHeight=wheight; 
} 
document.getElementById("iframeArea").style.minHeight=wrapHeight+'px'; 
document.getElementById("dailySchedule").style.minHeight=wrapHeight+'px'; 
document.getElementById("rightadmin").style.minHeight=wrapHeight+'px'; 
} 

HTML:

<body onload="height();"> 
    <!--Start of iframeArea--> 
    <div class="iframeArea" id="iframeArea"> 
     <div class="btnRight" id="rightadmin"> 

     </div> 
    <!--End of btnRight--> 
    </div> 
<!--End of iframeArea--> 
+1

does element'dailySchedule' exists? – fcalderan 2012-03-22 08:14:08

+1

whe re是dailySchedule? – 11684 2012-03-22 08:15:33

+0

请提供完整的HTML结构 – Nishant 2012-03-22 08:15:45

回答

3

你确定dailySchedule ID存在?如果不是,你的函数会抛出一个错误,不会执行最后一行。

+0

是的。它存在。该课程适用于另一个页面,它在第二个位置完美运行。但如果我把它放在第三位,并把“rightadmin”放在第二位,那么“dailySchedule”停止工作,“rightadmin”开始工作。 – 2012-03-22 08:27:11

0

我在页面上看不到具有ID = dailySchedule的元素。如果页面中没有具有该ID的元素,则应该会出现错误。检查浏览器控制台的JavaScript错误。

1

可能是由于范围问题 - 变量 wrapHeight是在两个块本地。

应该不会对结果产生任何影响,但是这个代码是分配的第三个变量更优雅的方式:

var dheight = $(document).height(); 
var wheight = $(window).height(); 
var wrapHeight = (dheight > wheight) ? dheight : wheight; 

正如所有其他人已经说了,别的东西都是问题。

+0

这不是JavaScript的工作原理 - 块不会限制变量的范围,只有函数可以。 – Pointy 2012-03-22 08:38:32

+0

@你说得对,应该在发布前检查它(http://jsfiddle.net/WWcnL/)。 – 2012-03-22 08:46:09

0

你说<body onload='height()'>并且从不检查文档是否准备好,然后可能没有带id的div rightadmin ... 尝试转换为jQuery并执行类似这样的操作并删除onload属性。

$(文件)。就绪(函数(){

//你的代码在这里

}

+0

如果你看看html代码,你会看到“rightAdmin”是第三块的id。 – 2012-03-22 08:29:34

+0

是的,我看到了,但我说,如果文档还没有完成加载,可能不会有id的rightadmin YET!因为在加载网页期间调用onload,所以页面可能不完整。有没有像已经准备好的东西?因为我认为它会起作用,所以你用onready替换onload。 – 11684 2012-03-22 09:37:12

0

我现在使用下面的代码。它工作正常的一切。

$(function(){ 
    var dheight= ($(document).height()); 
    var wheight= ($(window).height()); 
    var wrapHeight = (dheight > wheight) ? dheight : wheight; 
    $('.dailySchedule').css({ "min-height": wrapHeight + 'px' }); 
    $('.iframeArea').css({ "min-height": wrapHeight + 'px' }); 
$('.btnRight').css({ "min-height": wrapHeight + 'px' }); 

}); 

感谢您的回答

+0

你应该接受你的回答:) – NeeL 2013-01-22 11:13:25

相关问题