将 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 函数作为参数传递给您的函数的内容:您的代码似乎还有其他问题。你能指出确切的错误消息并提出一个最小的测试用例吗?
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 函数作为参数传递给您的函数的内容:您的代码似乎还有其他问题。你能指出确切的错误消息并提出一个最小的测试用例吗?