繁体   English   中英

为什么这个Javascript不起作用? 风格变化

[英]Why Doesn't This Javascript Work? Style Change

我不能为我的生活弄清楚为什么这不起作用:

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>

我之前使用过这个,并且只有一些略有不同的代码的工作副本,但它完美无缺。 我得到调试警报,直到“它工作!”,我没有得到。 在此先感谢,ell。

你需要这个:

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

因为有了resize_middle(),所以立即处理函数并将结果添加到事件中。 您希望将函数本身添加到事件中,因此除非函数返回要使用的事件的函数,否则不要使用()。

你需要这个:

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

目前,您正在调用这些函数并将其返回值分配给事件。 你想要的是将函数本身分配给事件,并让事件调用它们。


边注:

除非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;
}
window.onload = resize_middle;

分配事件处理程序时阅读此资源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM