在滚动的多个元素上触发一个函数

Trigger a function on multiple elements on scroll

我正在尝试触发 Odometer.js 卷轴上的多个数字。代码错了,我想我要哭了。2 小时什么也没有:未捕获的类型错误:this.el.appendChild 不是函数...

请帮忙。谢谢

html:

  <h2 class="odometre" chiffre-cle="2000">0</h2>
  <h2 class="odometre" chiffre-cle="2000">0</h2>
  <h2 class="odometre" chiffre-cle="2000">0</h2>

javascript:

var y = $(window).height(); 
var coord = y / 2;

$(window).scroll(function(){
    if($(window).scrollTop() > coord){
        $(".odometre").each(function(){
            var el = $(this);
            var chiffre = el.attr("chiffre-cle");
            od = new Odometer({
                el: el,
                value: 0,
                format: 'd',
                animation: 'ease',
                duration: 400
            });
            od.update(chiffre);
        })
    }
    else {
    }
});

看起来 Odometer.js 需要一个 HTMLElement 而不是 jQuery 对象,为了解决这个问题,您应该在此处从 this 中删除 $() 包装器:

var el = $(this);
var chiffre = el.attr("chiffre-cle");

让它看起来像:

var el = this;
var chiffre = $(el).attr("chiffre-cle");