【发布时间】:2010-07-07 07:04:27
【问题描述】:
我正在尝试创建一个下拉菜单作为主菜单的子菜单。子菜单只是一个包含项目/链接的 div 元素。单击主菜单项时,子菜单会下拉并停留在那里。这很容易,但是如果光标离开子菜单,我希望子菜单向上滑动。换句话说,一个简单的“mouseout”事件。然而,似乎当光标进入子菜单内的一项时,会触发“mouseout”事件。这就是你想要的,但如果你考虑一下,因为光标确实离开了子菜单元素,即使它没有离开它的边界。但是,这确实会带来问题,因为我只希望在光标移出子菜单元素边界时触发事件。
真正归结为,一个 div 包含在另一个 div 中,如下所示:
----------------------------
| DIV-1 |
| |
| ------------- |
| | | |
| | DIV-2 | | AREA OUTSIDE DIV-1
| | | |
| | | |
| | | |
| ------------- |
| |
| |
----------------------------
现在,有两件事可能会导致 DIV-1 触发“mouseout”事件:
- 光标从 DIV-1 的边界内移动到这些边界之外的区域
- 光标从 DIV-1 的边界内移动到 DIV-2 的区域
我的目标是能够将这两种情况彼此区分开来,但我还没有弄清楚如何。
有没有人能很好地解决这个问题?这似乎是一个足够常见的功能,所以一定有人解决了它。
【问题讨论】:
-
我建议阅读任何执行此操作的大量库(例如 drupal 插件),而不是在此处询问描述。
-
不知怎的,这对我来说不是很吸引人。
标签: javascript mouseout