我初始化了两个对象,但是当我调整大小(触发一个写入每个对象名称的函数)时,它只写入 last 对象。
我刚刚从jQuery切换到编写vanilla Javascript,所以如果代码没有意义,缺少某些内容或者只是完全错误,请告诉我!我不仅欢迎批评,我只想学习正确的方法。
无论如何,任何帮助弄清楚为什么它只返回第二个/最后一个对象? 的 CodePen https://codepen.io/kmarmet/pen/NYQvWV?editors=1011
代码
const Obj = function(options) {
const cont = document.querySelector('.cont');
const obj = options.objClass;
let delay = function() {};
const whenDone = () => cont.innerHTML += `${obj}<br>`;
return window.onresize = () => {
clearTimeout(delay);
return delay = setTimeout(whenDone, 100);
};
};
const one = new Obj({
sliderClass: 'slider-1'
});
const two = new Obj({
objClass: 'slider-2'
});
谢谢!
答案 0 :(得分:4)
您只能通过window.onresize
指定一个事件处理程序。请改用addEventListener
:
window.addEventListener('resize', () => {
clearTimeout(delay);
delay = setTimeout(whenDone, 100);
});
此外,从构造函数返回一些东西没有多大意义,也没有从resize
事件监听器返回。