0

我想使用 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">

最后一件事。我已经在 body-tag 末尾的 html 文档中编写了 script-tag。

4

1 回答 1

1

document从中删除document.startElements

您可能正在寻找Resize(). 你忘了()调用你的函数。

<body onload="Resize()">

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

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

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

除非您希望您的代码仅在 IE5-8 中工作,否则您需要使用addEventListenernot attachEvent,所以应该是addEventListener('change',

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

所以,也试试:

for (var i = 0;
于 2014-01-26T15:24:23.970 回答