繁体   English   中英

未定义AttachEvent为0

[英]AttachEvent of 0 is undefined

我想使用onchange-Event自动调整网站部分的大小。 但是和往常一样,我有一个小问题要解决。 控制台给出此错误:

The property undefined or a null reference can not be retrieved

function Resize() {
    var winHeight = window.innerHeight;
    var winWidth = window.innerWidth;
    var startElements = document.getElementsByClassName('start');
    for (var i = 1; i <= startElements.length; i++) {
        document.startElements[i].attachEvent('onchange', function StartResize() {
        startElements[i].style.paddingLeft = winWidth * 0.1;
        startElements[i].style.paddingRight = winWidth * 0.1;
        });
    };
};

<body onload="Resize">

最后一件事。 我已经在正文标签末尾的html文档中编写了脚本标签。

删除documentdocument.startElements

您可能正在寻找Resize() 您忘记了()来调用函数。

<body onload="Resize()">

但是,内联JS(例如html中的onload)从来都不是一个好习惯。 看看其中一些结果: 为什么内联JS不好?

相反,您应使用JavaScript附加事件监听器,如下所示:

window.addEventListener('load', function() {
  //code here
});

除非您希望代码仅在IE5-8中运行,否则需要使用addEventListener而不是attachEvent ,因此应为addEventListener('change',

我也想知道您是否打算从1而不是0开始循环。 第一个元素将是项0 如果页面上只有一个项目,则将其跳过,并从不存在的项目开始。

因此,请尝试:

for (var i = 0;

暂无
暂无

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

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