Jquery 为什么我的后期动画功能没有被调用?

Jquery 为什么我的后期动画功能没有被调用?,jquery,Jquery,我正在设置弹出窗口的动画,以便它们同时淡入和滑入。我想在隐藏后重置隐藏弹出窗口的位置,以便每次动画都相同 当元素滚动时,弹出窗口向下滑动并淡入。当它从中推出时,弹出窗口会进一步向下滑动并淡出,然后当它隐藏时,会将自身重置为初始位置 这是我的密码: $('*:has(.rollover)').hover(function(){ $('.rollover',this).fadeIn('fast').animate({ 'top' : '60px', }, {duration: 'fa

我正在设置弹出窗口的动画,以便它们同时淡入和滑入。我想在隐藏后重置隐藏弹出窗口的位置,以便每次动画都相同

当元素滚动时,弹出窗口向下滑动并淡入。当它从中推出时,弹出窗口会进一步向下滑动并淡出,然后当它隐藏时,会将自身重置为初始位置

这是我的密码:

$('*:has(.rollover)').hover(function(){
  $('.rollover',this).fadeIn('fast').animate({
    'top' : '60px',
  }, {duration: 'fast', queue: false}, function() {});
},function(){
  $('.rollover',this).fadeOut('fast').animate({
    'top' : '70px',
  }, {duration: 'fast', queue: false}, function() {
    console.log("hello");
    $(this).css('top','50px');
  });
});
问题是重置
顶部的最后一行没有被触发,日志语句也没有被触发。这是为什么?

我的错误是:

, {duration: 'fast', queue: false}, function() {});
当我应该有:

, {duration: 'fast', queue: false, complete : function() {}});

将事件处理程序附加到具有类元素的任何元素。滚动可能意味着事件将附加到页面上的几乎每个元素,这听起来是一个非常糟糕的主意。你可以用@adeneo这样的东西来简化,我使用
*:has(.rollover)
来选择所有具有
的元素。rollover
作为直接子元素,这是错误的吗?选择器将选择至少包含一个与指定选择器匹配的元素的任何元素,而不限于直接子元素。换句话说,任何包含class.rollover元素的元素,这可能就是页面上的每个元素。@adeneo我得到了它,我用
$('.rollover').parent()替换了它,这样效果更好。