我有一个应该在加载或调整大小时调用的函数。 有可能以某种方式结合它吗?
var loadOrNotImages = function() {
if(window.innerWidth > 640) {
var imgs = document.querySelectorAll('.img--only-on-high-reso');
for (var i = 0; i < imgs.length; i++) {
imgs[i].src = imgs[i].attributes["data-src"].value;
imgs[i].alt = imgs[i].attributes["data-alt"].value;
}
}
}
window.onload = function(){
loadOrNotImages();
}
window.onresize = function() {
loadOrNotImages();
}
答案 0 :(得分:1)
除非你不需要包装,否则你现在的做法没有任何问题,只是:
window.onload = loadOrNotImages;
window.onresize = loadOrNotImages;
......甚至
window.onload = window.onresize = loadOrNotImages;
......或者更好的是,在现代世界中,使用addEventListener
。
DOM本身并不具备将函数同时连接到多个事件的功能。你可以随便给自己一个:
function on(target, eventNames, handler) {
eventNames.split(" ").forEach(function(eventName) {
target.addEventListener(eventName, handler);
});
}
然后
on(window, "load resize", loadOrNotImages);