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>
Foi útil?

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
scroll top