jquery - jQuery mouseleave 的问题

标签 jquery mouseleave

我正在尝试创建一个具有以下结构的菜单:

<ul id="primary" class="menuOptions">
     <li>Item 1</li>
     <li>Item 2
         <div id="secondary">
            <ul class="menuOptions">
               <li>subItemOne</li>
               <li>subItemTwo</li>
           </ul>
         </div>
     </li>
     <li>Item 3</li>
</ul>

我用这个脚本制作动画:

$j('.menuOptions li').each(function(i){
//applies to all menu options
    $j(this)
   .bind('mouseover',function() {
          $j(this).toggleClass("over");
       })
       .bind('mouseleave',function() {
          $j(this).toggleClass("over");
       });                  
  });

我发现当鼠标移到二级菜单项上时,主菜单项上会调用toggleClass 函数。我知道在鼠标离开 child 之前不应该调用 mouseleave,所以我很困惑。

我需要以某种方式主动停止事件传播吗?

谢谢!

蒂姆

最佳答案

您可以尝试仅使用悬停功能吗?

$j('ul.menuOptions li').hover(function(){
          $j(this).toggleClass("over");
       } ,
       function() {
          $j(this).toggleClass("over");
       }
);

关于jquery - jQuery mouseleave 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1230410/

相关文章:

jquery - 如果我有一个值数组,如何选中复选框?

Jquery:悬停时显示/隐藏 div。点击时显示

jquery - 如何在 jQuery 中触发两个元素的 mouseout 事件?

jquery - 使用 showModalDialog 或 jQuery 对话框

带有背景图像动画的 JQuery 菜单

javascript - 为什么当值存在时indexOf()仍然返回-1

jQuery 将鼠标悬停在两个单独的元素上

validation - 产生错误讯息

javascript - 将鼠标悬停在一个元素上会导致使用 jQuery 对其他元素产生悬停效果

javascript - 如何使用绝对定位的非后代实现 mouseleave 效果?