javascript - 动画步骤函数中的 jQuery 对象在每次函数调用时返回 "undefined"

标签 javascript jquery animation

我正在尝试使用以下代码稍微修改 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 似乎是一个有效的 jQuery 对象,它实现了 css(),但是当我尝试对其调用 css() 方法时,它返回 未定义。当我尝试 offset() 时也会发生同样的情况。

有没有人知道为什么会发生这种情况?一夜之间我一直在绞尽脑汁,但它似乎没有任何意义。

最佳答案

我猜这行不匹配任何元素:

var caption = site.closest('.caption').first();

测试 .length 以确定。如果它是 0,那就是问题所在。

console.log(caption.length);

FWIW,在 .closest() 之后不需要 .first(),因为 .closest() 最多返回1 元素...因此是函数名称的 "est" 部分。 ;-)

关于javascript - 动画步骤函数中的 jQuery 对象在每次函数调用时返回 "undefined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15865632/

相关文章:

javascript - 在页面加载时重新加载 gif 图像

jquery - 在CKEDITOR中,onload中的startupFocus : true,(对于起点处的光标)在firefox中不起作用

c# - 使用 For 循环滑动对象 (C#)

ios - 如何在 UIButton 上制作原生 "Pulse effect"动画 - iOS

javascript - 在运行状态下停止 jquery 函数

javascript - 检查 HTML 元素是否为 HTML 媒体元素

javascript - php到node.js ajax发送没有给出响应

Javascript onClick 函数 SyntaxError : expected expression, 得到 '}'

如果没有 h3 标签,JQuery Accordion 将无法工作

javascript - 如何在 react-native 中插入 Animated 值以生成 bool 值或字符串?