2017-01-19 6 views
-1

ユーザーがボタンをクリックしたときに機能を開始しようとしています。機能を開始しようとしています

サイトがロードされたときと、ユーザーがブラウザをスクロールまたはサイズ変更したときに開始されます。しかし、ユーザーが特定のボタンをクリックしたときに、どのように動作させるのですか?ボタンにはonclick = "sort();"という文字列があります。

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) 
    } 
} 
+0

ボタンをクリックすることで実行されなければならない、どの機能? –

+0

本質的には、開始するにはlazyLoadが必要ですが、そうする際にループ内のif文が機能しません。それは、ページの読み込み、スクロール、またはサイズ変更の際に機能します。 – Julian

答えて

0

var button=document.getElementById('button'), 
 
    clickFunction=function(button){ 
 
     alert('click'); 
 
    }; 
 

 
button.addEventListener('click',clickFunction);
<input id="button" type="button" value="test">

関連する問題