首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery mouseover / show-hide div

jquery mouseover / show-hide div
EN

Stack Overflow用户
提问于 2013-02-07 02:28:32
回答 2查看 3.4K关注 0票数 1

我创建了一个脚本,用于在鼠标悬停时显示div。

代码语言:javascript
复制
<script type="text/javascript">
            $(document).ready(function() {

                $("a.prikaziDiv").hover(

                function() {
                    var $sibling = $(this).siblings('div.prikazano').show(); // get the sibling div and show it
                    $('div.prikazano').not($sibling).hide(); // hide the other divs
                }, function() {
                    $(this).siblings('div.prikazano').delay(999).fadeOut(0);; // get the sibling div and hide it after .333 seconds
                });

            });

</script>

<a class="prikaziDiv" href="#">SHOW</a><div class="prikazano" style="display:none;">aa</div>

它可以工作,但是当我悬停在"SHOW“链接时,我把光标放在div上,但是它消失了。我不想消失。

有人能帮我吗?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2013-02-07 07:30:21

当您悬停锚点时,div会出现,当您悬停div时,它会消失,因为您不再将鼠标悬停在锚点上,因此会触发hover()的mouseleave部分。您可以将div放在锚点中,也可以使用超时,如下所示:

代码语言:javascript
复制
$(document).ready(function () {
    var timer;
    $("a.prikaziDiv").on({
        mouseenter: function() {
            var $sibling = $(this).siblings('div.prikazano').show();
            $('div.prikazano').not($sibling).hide();
        },
        mouseleave: function() {
            var self = this;
            timer = setTimeout(function() {
                $(self).siblings('div.prikazano').fadeOut(1);
            }, 999);
        }
    });

    $('div.prikazano').on({
        mouseenter: function() {
            clearTimeout(timer);
        },
        mouseleave: function() {
            $(this).delay(999).fadeOut(1);
        }
    })
});
票数 1
EN

Stack Overflow用户

发布于 2013-02-07 03:06:09

使用mosueenter而不是hover。

http://jsfiddle.net/kkobold/y8hb9/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14740755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档