jQuery UI 悬停重复

标签 jquery jquery-ui

我有这个 HTML:

<div>

    <div id="wrap">
        <div id="pop">Hello</div>
        Here is some content
        <br />
        It is several lines long.
        <br />
        This is the end of it.
    </div>

</div>

还有这个 JavaScript:

$(function() {
    $('#wrap').hover(function() {
        $('#pop', $(this)).show('blind');

    }, function() {
        $('#pop', $(this)).hide('blind');
    });
});

JsFiddle link

使用 jQuery UI。

如果您将鼠标移到 #wrap div 上,#pop 就会向下滑动,当您将鼠标移开时,#pop 会再次滑开。但是,如果在动画完成之前将鼠标从上方移至 #wrap 或从 #wrap 移至 #pop,则它会永远循环(如果等到动画结束,则可以在 #wrap 和 #pop 之间自由移动,并且没有任何动画,这是我想要的)。

我尝试了 mouseovermouseenter/mouseleave 的组合,并按 .not(':animated') 进行过滤,在每次调用 show/hide 之前调用 .stop(),所有这些都给出相同的结果,这让我相信我错过了一些基本的东西。

有人可以指出我在这里缺少的方向吗?

谢谢

最佳答案

悬停回调与 show('blind')hide('blind') 配合使用效果不佳,但与 slideUp 配合使用应该可以正常工作()/slideDown().

$(function() {
    $('#wrap').hover(function() {
        console.log('over');
        $('#pop').slideDown();

    }, function() {
        console.log('out');
        $('#pop').slideUp();
    });
});​
<小时/>

此外,我没有看到无限循环,但动画确实会排队。如果您将鼠标指针快速移入和移出#wrap,您将生成一长串动画。

编辑:

我能够在 FF 中获得无限循环。

关于jQuery UI 悬停重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10903309/

相关文章:

javascript - 使用ajax从数据库加载数据时将复选框添加到数据表

jQuery 与标准后端编程

javascript - 与 live() 一起使用的滑动事件?

javascript - 使用切换菜单不滑动

jQueryUI 可选 : can't apply theme to selected item ("ui-selected" class)

php - div的自动刷新

jquery - 有什么比发布 JSON 结果更好的选择?

javascript - 在 Cucumber 中测试 JQuery UI slider

jquery-ui - 将指针从一个点拖动到另一点时,jQuery UI slider 没有给出 "Slide"效果

jquery-ui - JQuery UI Sortable : how to make a small area draggable, 不是整个可排序元素?