Вместо этого используйте mouseenter
и mouseleave
события новые в прототипе 1.6.1 (но не новые в IE ). Вы должны убрать встроенные обработчики событий из разметки, чтобы сделать это:
<div id="Navigation">
<div id="Drop_Down">
<% include Navigation %>
</div>
</div>
И настроить события в сценарии:
<script>
document.observe('dom:loaded', function() {
$('Navigation')
.observe('mouseenter', function() {
new Effect.toggle('Drop_Down','slide',{duration: 0.8})
})
.observe('mouseleave', function() {
new Effect.toggle('Drop_Down','slide',{duration: 0.8})
})
})
</script>
В отличие от mouseover
и mouseout
, эти события не всплывают от дочерних элементов. Они стреляют по тому элементу, с которым вы их связываете, прекрасно решая вашу проблему.