2

我在下面有一个清单:

<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');
            }
});

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

4

1 回答 1

2

您需要stopPropagation()防止事件冒泡侦听器树:

document.getElements('li').addEvents({
  mouseover: function(e){
    this.addClass('css_class');   
    e.stopPropagation();
  },
  mouseout: function(){
    this.removeClass('css_class');   
    e.stopPropagation();
  }
});
于 2013-09-13T06:50:15.513 回答