JS и прототип:наведение курсора мыши влияет на вышележащий элемент, почему?

StackOverflow https://stackoverflow.com/questions/1683550

Вопрос

Я пытаюсь создать событие наведения курсора мыши на элемент div, содержащий ссылку.Когда указатель мыши проходит над элементом div, фон применяется ко всем элементам 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>
Это было полезно?

Решение

Использовать this внутри вашего обработчика событий, чтобы последовательно ссылаться на div, к которому был привязан обработчик:

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

$("a").observe('mouseout', function() {
  this.setStyle({backgroundColor: '#fff'});
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top