1

我正在尝试使用以下代码稍微修改 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"});
            }
        }
    });
});

奇怪的是,标题似乎是一个有效的 jQuery 对象css(),但是当我尝试调用它的css()方法时,它返回undefined. 当我尝试时也会发生同样的情况offset()

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

4

1 回答 1

3

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

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

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

console.log(caption.length);

FWIW,你不需要.first()after .closest(),因为返回元素.closest()的最大值......因此是函数名的一部分。;-)1"est"

于 2013-04-07T17:51:15.027 回答