我不能为我的生活弄清楚为什么这不起作用:
的javascript:
//==================================//
// resize_middle //
//----------------------------------//
// Resizes the content and left //
// navigation div to make up the //
// remains of available space. //
//==================================//
function resize_middle()
{
min_height = (window.innerHeight - 276) + "px";
middle_left = document.getElementById("middle_left");
middle_right = document.getElementById("middle_right");
alert("its not going to work!");
alert("here goes...");
alert(min_height);
middle_left.style.minHeight = min_height;
alert("it works!");
middle_right.style.minHeight = min_height;
}
//==================================//
// event handlers //
//==================================//
window.onload = resize_middle();
window.onresize = resize_middle();
html(仅显示头部的主体和javascript位):
<script src="javascript.js" type="text/javascript" charset="utf-8"></script>
<body>
<div id="container">
<div id="central_column">
<div id="top_left">
<img src="./images/icon.png" alt="icon" style="width:100%;height:auto;" />
</div>
<div id="top_right">
top right
</div>
<div id="middle_left">
middle left
</div>
<div id="middle_right">
middle right
</div>
<div id="bottom">
bottom
</div>
</div>
</div>
</body>
我之前使用过它并且只有一些略有不同的代码的工作副本,但它完美无缺。我得到调试警报,直到“它工作!”,我没有得到。先谢谢你,
答案 0 :(得分:6)
你需要这个:
window.onload = resize_middle;
window.onresize = resize_middle;
因为有了resize_middle(),所以立即处理该函数,并将结果添加到事件中。您希望将函数本身添加到事件中,因此除非函数返回要使用的事件的函数,否则不要使用()。
答案 1 :(得分:4)
你需要这个:
window.onload = resize_middle;
window.onresize = resize_middle;
目前,您正在调用这些函数并将其返回值分配给事件。你想要的是将事件自己分配给事件,并让事件调用它们。
旁注:
除非resize_middle
中的变量在其他地方定义,并且您希望外部范围可以访问它们,否则在定义新变量时最好使用var
关键字。
function resize_middle()
{
// Changed to use "var"
var min_height = (window.innerHeight - 276) + "px";
var middle_left = document.getElementById("middle_left");
var middle_right = document.getElementById("middle_right");
alert("its not going to work!");
alert("here goes...");
alert(min_height);
middle_left.style.minHeight = min_height;
alert("it works!");
middle_right.style.minHeight = min_height;
}
答案 2 :(得分:2)
window.onload = resize_middle;
在assigning event handlers上阅读此资源。