将 Jquery 的 $(this) 写成纯 javascript

write $(this) of Jquery in pure javascript

    var item = $('.card');

        var pageLoaded = false;
        var waypoints = item.waypoint(function(direction) {

          if($('.content').css('display') !== 'block'){
console.log('yes it did fire here');
              $(this).addClass("animated doneAnimated" + (pageLoaded ? " fadeInUp" : ""));
          }
        }, {
          offset: '90%'
        });

        pageLoaded = true;

以上代码在 jquery 中有效,但我切换到 zepto。我不知道为什么 zepto 中的 $(this) 是别的东西。怎么用纯js写才能让代码生效?

$(this) returns 一个 jQuery 对象,所以问如何在 jQuery.

之外实现它是没有意义的

您可以实现的是 addClass 功能,您可以使用 DOM:

轻松实现
this.className += "animated doneAnimated" + (pageLoaded ? " fadeInUp" : ""));

这样你就可以使用 vanilla javascript 来改变 类。

然而,zepto already supports addClass functionality and zepto also supports $(this) 其中 this 是任何 DOM 元素。

您应该查看 waypoint 函数作为参数传递给您的函数的内容:您的代码似乎还有其他问题。你能指出确切的错误消息并提出一个最小的测试用例吗?