JS e Protótipo: mouseover influenciar recobre elemento, por quê?
-
18-09-2019 - |
Pergunta
Eu tento criar um evento mouseover em um div wich containt um link. Quando a passagem do mouse sobre a div o fundo é aplicável a todos os div corretamente, mas quando o mouse está sobre o link do fundo obter aplicam-se apenas à ligação, por quê?
O link é no div, então logicamente ele ainda deve chamar o meu evento no 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>
Solução
Use this
dentro de seu manipulador de eventos para consistentemente referência ao div o manipulador foi obrigado a:
$("a").observe('mouseover', function() {
this.setStyle({backgroundColor: '#900'});
});
$("a").observe('mouseout', function() {
this.setStyle({backgroundColor: '#fff'});
});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow