Javascript 点击按钮启动懒散加载

Javascript 点击按钮启动懒散加载,javascript,Javascript,我试着在点击按钮时让它工作。这是一个简单的轻量级lazyload,当点击一个过滤器按钮时它就会工作 目前,我无法让这个按钮工作 <ul> <li class="sort" data-sort="default" onclick="sort();">Default</li></li> <li class="sort" data-sort="top-ten:asc" onclick="sort();">Most Popula

我试着在点击按钮时让它工作。这是一个简单的轻量级lazyload,当点击一个过滤器按钮时它就会工作

目前,我无法让这个按钮工作

<ul>
    <li class="sort" data-sort="default" onclick="sort();">Default</li></li>
    <li class="sort" data-sort="top-ten:asc" onclick="sort();">Most Popular (1 - 10)</li>
    <li class="sort" data-sort="top-ten:desc" onclick="sort();">Most Popular (10 - 1)</li>
    <li class="sort" data-sort="name:asc" onclick="sort();">Name Ascending (a - z)</li>
    <li class="sort" id="sort" data-sort="name:desc" onclick="lazyLoad();">Name Descending (z - a)</li>
    <li class="sort" data-sort="random" onclick="sort();">Random</span></li>
</ul>

<script>
var lazy = [];
registerListener('load', setLazy);
registerListener('load', lazyLoad);
registerListener('scroll', lazyLoad);
registerListener('resize', lazyLoad);

document.getElementById('sort').addEventListener('click', function() {

});

function setLazy(){
    lazy = document.getElementById('img-loading').getElementsByTagName('img');
    // console.log('Found ' + lazy.length + ' lazy images');
} 

function lazyLoad(){
    console.log('lazyLoad initiated');
    for(var i=0; i<lazy.length; i++){
        if(isInViewport(lazy[i])){
            if (lazy[i].getAttribute('data-src')){
                lazy[i].src = lazy[i].getAttribute('data-src');
                lazy[i].removeAttribute('data-src');
            }
        }
    }
    cleanLazy();
    console.log('lazyLoad END');
}

function cleanLazy(){
    lazy = Array.prototype.filter.call(lazy, function(l){ return l.getAttribute('data-src');});
}

function isInViewport(el){
    var rect = el.getBoundingClientRect();

    return (
        rect.bottom >= 0 && 
        rect.right >= 0 && 
        rect.top <= (window.innerHeight || document.documentElement.clientHeight) && 
        rect.left <= (window.innerWidth || document.documentElement.clientWidth)
     );
}

function registerListener(event, func) {
    if (window.addEventListener) {
        window.addEventListener(event, func)
    } else {
        window.attachEvent('on' + event, func)
    }
}
</script>
    默认值 最受欢迎的(1-10) 最受欢迎的(10-1) 名称升序(a-z) 名称递减(z-a) 随机
var=[]; registerListener('load',setLazy); 寄存器列表器('load',lazyLoad); registerListener('滚动',懒散加载); registerListener('resize',lazyLoad); document.getElementById('sort')。addEventListener('click',function(){ }); 函数setLazy(){ lazy=document.getElementById('img-load').getElementsByTagName('img'); //log('Found'+lazy.length+'lazy image'); } 函数lazyLoad(){ log('lazyLoad initiated'); 对于(变量i=0;i=0&& rect.right>=0&&
你能提供一个关于JSFIDLE的例子吗?你在哪里加载你的js?如果你等待内容准备好,它会加载图像。我希望当你点击一个过滤器按钮时它能工作。因为目前没有图像显示,直到你向下滚动。