在纯javascript中编写Jquery的$(this)

时间:2015-01-03 12:58:32

标签: javascript jquery zepto

    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中是别的。如何编写纯js以使代码工作?

1 个答案:

答案 0 :(得分:1)

$(this)返回一个jQuery对象,因此询问如何在jQuery之外实现它是没有意义的。

您可以实现的是addClass函数,您可以使用DOM轻松完成此任务:

this.className += "animated doneAnimated" + (pageLoaded ? " fadeInUp" : ""));

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

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

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