javascript - JS 和 Prototype : mouseover influencing overlying element, 为什么?

标签 javascript events prototypejs dom-events

我尝试在包含链接的 div 上创建鼠标悬停事件。当鼠标经过 div 时,背景会正确应用于所有 div,但是当鼠标经过链接时,背景只会应用于链接,为什么?

链接 IS 在 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>

最佳答案

在事件处理程序中使用 this 来一致地引用处理程序绑定(bind)到的 div:

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

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

关于javascript - JS 和 Prototype : mouseover influencing overlying element, 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1683550/

相关文章:

JavaScript - 如何知道定期运行的方法是否执行了超时?

javascript - 在 Bootstrap 中通过悬停显示附加部分

javascript - javascript 中的新 Effect.toggle(参数) ?

javascript - 扩展每个 Ajax.Request onSuccess 事件(Javascript 原型(prototype)框架)

javascript - 在鼠标悬停时更改链接和箭头颜色

javascript - 使用从 vimeo/youtube 复制的 iframe 代码时出现同源错误

c# - 关于 C# RFID 线程的问题

javascript - 在 Vue.js 组件方法中使用 FileReader API

javascript - 禁用输入停止事件冒泡

jQuery 原型(prototype)冲突