我正在尝试使用以下代码稍微修改jQuery动画:
web_links.mouseenter(function() {
var site = $(this).closest('.site');
var image = site.find('.image').first();
var offset = '-' + image.height();
var caption = site.closest('.caption').first();
site.find('.image').first().stop().animate({top: offset}, {
duration: 400,
step: function(curTop) {
console.log(caption);
console.log(caption.css("top");
if (curTop < -191) {
caption.css({top: curTop + "px"});
}
}
});
});
奇怪的是,caption似乎是一个实现css()
的有效jQuery对象,但是当我尝试在其上调用css()
方法时,它返回undefined
。当我尝试offset()
时会发生同样的情况。
有没有人知道为什么会这样?我一夜之间一直在绞尽脑汁,但这似乎没有任何意义。
答案 0 :(得分:3)
我猜这行不匹配任何元素:
var caption = site.closest('.caption').first();
测试.length
以确定无疑。如果是0
,那就是问题。
console.log(caption.length);
FWIW,.first()
之后您不需要.closest()
,因为.closest()
会返回1
元素的最大值...因此"est"
部分功能名称。 ; - )