Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么';这不管用吗?风格变化_Javascript_Html_Css_Dom - Fatal编程技术网

Javascript 为什么';这不管用吗?风格变化

Javascript 为什么';这不管用吗?风格变化,javascript,html,css,dom,Javascript,Html,Css,Dom,我一辈子都想不出为什么这样不行: javascript: //==================================// // resize_middle // //----------------------------------// // Resizes the content and left // // navigation div to make up the // // remains of

我一辈子都想不出为什么这样不行:

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位):


右上角
中左派
中右翼
底部
我以前使用过这个,并且有一些代码的工作副本,只是略有不同,但它工作得非常完美。我一直收到调试警报,直到“它能工作!”,但我没有收到。提前谢谢,厄尔。

您需要这个:

window.onload = resize_middle;
window.onresize = resize_middle;
window.onload = resize_middle;
window.onresize = resize_middle;
当前,您正在调用这些函数并将其返回值分配给事件。您想要的是将函数本身分配给事件,并让事件调用它们


旁注:

除非在别处定义了
resize\u 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;
}
请在上阅读此资源。

您需要此资源:

window.onload = resize_middle;
window.onresize = resize_middle;
window.onload = resize_middle;
window.onresize = resize_middle;

因为在调整函数的大小时,会立即处理函数,并将结果添加到事件中。您希望将函数本身添加到事件中,因此您可以取消()选项,除非您的函数返回一个函数供事件使用。

哦,您在开玩笑吧!我真不敢相信!为什么这样做?@Ell:因为
resize\u middle
计算结果是函数,而
resize\u middle()
计算结果是函数返回的值。
/*自由形式的注释\n非常有用它们是*/
我强烈建议对JavaScript使用合适的调试器,比如Firefox。至少能让每个人都知道一次