Javascript Jquery$(此)在函数内部不工作
我正在尝试使用waypoints.js在滚动点击元素时使元素fadein 我有Javascript Jquery$(此)在函数内部不工作,javascript,jquery,css,jquery-waypoints,Javascript,Jquery,Css,Jquery Waypoints,我正在尝试使用waypoints.js在滚动点击元素时使元素fadein 我有 $(document).ready(function(){ $('.card').waypoint(function(down) { console.log('hit element'); $(this).addClass('card-fadeIn'); }, { offset: '100%' }); }); 这样做的目的是添加“card fadeIn”类,即不透明度1和动画中的轻松性 当我把它
$(document).ready(function(){
$('.card').waypoint(function(down) {
console.log('hit element');
$(this).addClass('card-fadeIn');
}, { offset: '100%' });
});
这样做的目的是添加“card fadeIn”类,即不透明度1和动画中的轻松性
当我把它改成
$('.card').addClass('card-fadeIn');
它可以很好地工作,但会给每个卡类增加不透明度1,并破坏fadein效果。我试图改用$(this),但它不会消失,也不会在控制台中出现错误。知道为什么吗?你必须使用
$(this.element)
在航路点处理程序中。所以
$(this.element).addClass('card-fadeIn');
你应该做你想做的
$(这)
在jQuery回调中起作用,因为jQuery是为这样工作而设计的。但是,这并没有什么神奇之处,所以如果this
不引用DOM元素,您将得到一个不会做任何事情的jQuery对象(并且不会报告任何错误,因为jQuery就是这样工作的)。航路点库将此绑定到它自己的上下文对象,并将回调中涉及的DOM元素的引用作为“元素”属性公开。您尝试过此元素吗
$(document).ready(function(){
$('.card').waypoint(function(down) {
console.log('hit element');
$(this.element).addClass('card-fadeIn');
}, { offset: '100%' });
});
您可以记录该函数中的内容吗?
此
可能与您认为的非常不同。此
可能不再是jQuery对象范围。将此
保存在之前的某个变量中。我认为,因为在本例中此
是航路点
。控制台日志此
检查是什么。尝试将元素传递给该函数。是的,控制台日志为我提供了元素和一些其他选项。元素为它添加了正确的css,但是它将动画应用于每个.card元素,我只想在向下滚动时触发它。@ServerSideSkittles我不明白你的意思。你还没有发布你的HTML,我也不知道你到底想让页面做什么。您以前使用过航路点吗?第一次使用航路点。我有这个主题,想在另一个主题上复制效果。据我所知,这个主题使用了这个确切的方法。我一块一块地删除了另一个js,它使用的只是css不透明度、jquery路径点和类似于我自己的自定义函数。