JS и прототип:наведение курсора мыши влияет на вышележащий элемент, почему?
-
18-09-2019 - |
Вопрос
Я пытаюсь создать событие наведения курсора мыши на элемент 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'});
});
Не связан с StackOverflow