代码:
<div id="Navigation" onmouseover="new Effect.toggle('Drop_Down','slide',{duration: 0.8});" onmouseout="new Effect.toggle('Drop_Down',{duration: 0.8});"> <div id="Drop_Down"> <% include Navigation %> </div> </div>
如果我将鼠标悬停在导航上,Drop_Down div会向下滑动,如果我将其鼠标移开,则会向上滑动.
问题是,如果我将鼠标悬停在Drop_Down div上,它也会向上滑动.
有谁知道我怎么能解决这个问题?
解决方法
使用
mouseenter
和
mouseleave
事件而不是
new in Prototype 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',{duration: 0.8}) }) .observe('mouseleave',{duration: 0.8}) }) }) </script>
与mouseover和mouseout不同,这些事件不会从子元素冒泡.他们被绑定到你绑定的确切元素,很好地解决了你的问题.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。