JQuery隐藏优先于显示?

JQuery隐藏优先于显示?,jquery,Jquery,我对JQuery显示和隐藏有问题。当我将鼠标悬停在一个元素上时,我想显示右边弹出的另一个元素。我已通过以下代码管理了该问题: var actionHoverInListener = function () { $(this).children('.pop-out').show("slide", { direction:"left" }, 100); }; var actionHoverOutListener = function () { $(this).children('.p

我对JQuery显示和隐藏有问题。当我将鼠标悬停在一个元素上时,我想显示右边弹出的另一个元素。我已通过以下代码管理了该问题:

var actionHoverInListener = function () {
    $(this).children('.pop-out').show("slide", { direction:"left" }, 100);
};
var actionHoverOutListener = function () {
    $(this).children('.pop-out').hide("slide", { direction:"left" }, 100);
};

// Add a hover listener for actions
$(".magic").hover(
    actionHoverInListener, actionHoverOutListener
);
这很好,但问题是速度。如果我在“魔法”分区上悬停太快,它永远不会隐藏弹出窗口。这就好像隐藏调用被忽略,因为该节目仍在为幻灯片设置动画

正确调用了hover out方法:我已经输入了日志代码,以确保它被调用。因此,问题是隐藏不会取消显示。有办法做到这一点吗

谢谢

更新:

我在jfiddle上包含了一个问题示例:

把鼠标放在红色条纹上。您将看到绿色滑出,但如果速度太快(即使使用stop()调用),则不会滑回。

更改为

$(this).children('.pop-out').stop().hide(...
这将停止显示动画并立即隐藏

编辑:不太清楚原因,但是
.stop
这样的孩子们玩得不好。无论出于何种原因,使用不同的选择器语法似乎都能使其正常工作

此外,由于动画被暂停,
CSS可能会变为负数,因此我在
.hide
上添加了一个回调,以在动画完成后将其设置为0


您可以研究一下如何使用–我以前就已经解决了类似的问题

摆弄你的小提琴和你的意图让我想到:

如果我这么说的话,效果相当不错。我刚刚更改了脚本以适应插件,如下所示:

var config = {    
 over: actionHoverInListener, // function = onMouseOver callback (REQUIRED)    
 timeout: 1000, // number = milliseconds delay before onMouseOut    
 out: actionHoverOutListener // function = onMouseOut callback (REQUIRED)    
})


不幸的是,这对我不起作用。我在jsfiddle.net上放了一些东西来说明这个问题。我添加了一个jsfiddle示例(带有stop()),但仍然不起作用。如果您还有其他建议,我将不胜感激!感谢您-更改选择器而不使用.children()使其工作完美。谢谢你的帮助!
// Add a hover listener for actions
   $('.monkey').hoverIntent(
       config
);