我尝试创建一个div至极containt链路上的鼠标悬停事件。当鼠标越过格的背景是正确应用于所有div的,但是当鼠标移动到链接的背景获得仅适用于链接,为什么?

在链接的在div,所以逻辑上应该还是叫我的事件的DIV。

-----------------------------------------------------------
|   |link|                                                |
-----------------------------------------------------------
<div id="a" style="width:100%;">
       <a href="">bob</a>
</div>

<script type="text/javascript">
    $("a").observe('mouseover', function(e) {
            Event.element(e).setStyle({backgroundColor: '#900'});
     });

    $("a").observe('mouseout', function(e) {
                Event.element(e).setStyle({backgroundColor: '#fff'});
    });
</script>
有帮助吗?

解决方案

使用您的事件处理程序始终引用DIV中this的处理程序绑定到:

$("a").observe('mouseover', function() {
  this.setStyle({backgroundColor: '#900'});
});

$("a").observe('mouseout', function() {
  this.setStyle({backgroundColor: '#fff'});
});
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top