像window.onload或window.onresize之类的东西那么可以做这个功能吗?

时间:2017-10-18 09:45:21

标签: javascript

我有一个应该在加载或调整大小时调用的函数。 有可能以某种方式结合它吗?

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();
}

1 个答案:

答案 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);