JavaScript 嵌套列表 CSS

标签 javascript css mootools nested-lists

我有以下列表:

<ul>
   <li>
      <a>Link1</a>
      <ul>
         <li>
            <a>SubLink1</a>
         </li>
         ...   
      </ul>
   </li>
   <li>
      <a>Link2</a>
   </li>
   ...
</ul>

并想添加'css_class'到当前鼠标悬停的位置<li>元素:

document.getElements('li').addEvents({
            mouseover: function(){      
               this.addClass('css_class');
            },
            mouseout: function(){
               this.removeClass('css_class');
            }
});

但是这个代码是错误的,因为我的 parent <li>还有'css_class' 。 我怎样才能解决这个问题? 谢谢。

最佳答案

您需要 stopPropagation() 来防止事件在监听器树中冒泡:

document.getElements('li').addEvents({
  mouseover: function(e){
    this.addClass('css_class');   
    e.stopPropagation();
  },
  mouseout: function(){
    this.removeClass('css_class');   
    e.stopPropagation();
  }
});

关于JavaScript 嵌套列表 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18779854/

相关文章:

javascript - 在 JavaScript 中使用模数 (%) 运算符的正确方法是什么?

css - Angular 想要根据移动设备和桌面设备通过 CSS 修改 HTML 上的 ngIf 值

html - 创建跨浏览器的背景渐变

css - Wordpress 站点标题宽度(Genesis、Foodie Pro)

javascript - Ajax.BeginForm() 在错误时设置 javascript 变量

javascript - 使用 JavaScript 调用 Shell 脚本实现自动化

javascript - 在表单将 Mootools 1.1 发送到 Mootools 1.4.1 后更新 div

css - MooTools 1.1,如何获取类的 ID 并应用样式

php - 加载多个 TinyMCE 实例会卡住浏览器,解决方案?

javascript - 如何以 f(y) + f(x) = c 的形式绘制图形