jquery - 为什么 jQuery 切换在鼠标移动/悬停时不断变化

标签 jquery css toggle show-hide

我刚刚通过此处的答案在 jQuery 中使用了这段代码 -

$('.folder-items a').hover(function(){
   $(this).siblings('.file-hover').toggle();
});​

.folder-items a在一里之内。我希望能够悬停整个“li”,而不仅仅是悬停在实际的 <a> 上。显示.file-hover分区

我在 jsfiddle 中创建了这个 - http://jsfiddle.net/8Sefc/8/ - 但是当我在 li 周围移动鼠标时,它会疯狂地显示/隐藏...

我认为我的 CSS 和 display: block 有问题;宽度:100%; li 和 li a 但想不出另一种方法来做到这一点......

想法?

最佳答案

要显示的元素位于悬停元素的“顶部”这一事实引起了麻烦。我建议,作为替代方案,只在悬停期间显示元素,当它们悬停时隐藏它们:

$('.folder-items a').hover(function(){
    $(this).siblings('.file-hover').show();
}).siblings('.file-hover').hover(
    function() { },
    function() { $(this).hide(); }
);

更新:这不是一个完美的解决方案。如果你疯狂地将鼠标移到 itens 上,有时它们会“粘住”而不是消失......也许更好的解决方案是将 hover 绑定(bind)到 parent 元素:

$('.folder-items a').parent().hover(
    function(){
        $(this).children('.file-hover').show();
    },
    function(){
         $(this).children('.file-hover').hide();
         $(this).children('a').show();
    }
);

我用你的 fiddle 测试了这个,看起来没问题。

关于jquery - 为什么 jQuery 切换在鼠标移动/悬停时不断变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9344834/

相关文章:

javascript - 如何制作一个切换按钮以从 DOM 中添加和 "remove"div?

php - 从php到ajax的返回值成功和错误

jquery - CSS - 定位顶部导航 ul li a :hover only

html - css 在 html 页面加载时延迟 1 秒?

javascript - js 'toggle' 或 'hover' 函数?

android - GPS 状态和 TurnOnOff

javascript - 使用 anchor 标记单击更改 ul 列表的事件类

javascript - 添加第二个类不起作用

css - 仅在悬停帖子标题时显示特色图片

css - 表格 DIV 和 CSS