如何通过类名向多个对象添加事件监听器

时间:2014-05-09 11:39:29

标签: javascript addeventlistener

我有一组带有文本的滚动对象。我用div和类名“scrollContent”包围了所说的文本。我添加了一个调用我的方法的onscroll属性。

我遇到过.addEventListener功能,想要在滚动类名为scrollContent的任何div时添加一个监听器,调用我的函数。

这可能吗?如何?

function checkScroll(scrollEle) {

     var topLG = getTopLG(scrollEle);

     if(scrollEle.scrollTop < 10){
     topLG.style.display = "none";
    }else{
    if(topLG.hasAttribute("style")){
        topLG.removeAttribute("style");
    }

}

}

var scrollDivs = document.getElementsByClassName("scrollContent");
for (var i =0; i<scrollDivs.length; i++){
     scrollDivs[i].addEventListener('scroll', checkScroll(scrollDivs[i]), false)
}

1 个答案:

答案 0 :(得分:0)

使用event delegation。类似的东西:

// somecontainerDiv can be document, document.body or any Element 
// containing your elements having class 'scrollContent'
somecontainerDiv.addEventListener('scroll', scrollHandling);
function scrollHandling(e){
  var originator = e.target || e.srcElement;
  if (!/scrollContent/i.test(originator.className) {return true;}
  return checkScroll(e); // or insert checkScroll code here
}