jQuery:悬停菜单 - 代码清理 - 保持菜单打开

时间:2010-11-16 22:08:30

标签: javascript jquery jquery-ui jquery-hover

我搜索了SO,这个问题似乎已多次被问过,但我似乎无法在我的例子中使用它。

以下是一些可以使用的代码: http://jsfiddle.net/vol7ron/w8QsZ/2/

我正在寻找的东西类似于flowplayer tooltip,其中:

  • 有一个触发器会导致菜单在悬停时出现
  • 离开触发器时菜单消失
  • 如果用户将鼠标悬停在菜单(或工具提示)上,则弹出窗口应保持打开状态

我的猜测是触发器的hoverOut应该使用setTimeout()调用消失但有一些延迟,但是在菜单的mouseenter()上,应该清除超时

我还是jQuery的新手,不确定在哪里存储生成的timeoutID以及在哪里调用它。

注意:相同的菜单将用于多个触发器。


更新:好的,我有点工作:here
有人可以帮我清理一下,让它更有效率。更重要的是,我不想对timeoutID使用全局变量。也许有更好的方法将它存储在对象中?

1 个答案:

答案 0 :(得分:0)

我最近刚做过这样的事情。我会做的是

var timer = setTimeout(/*blah*/);
$('#my_selector').data('timer') = timer;

我在该元素的数据中抛出timeoutID,然后每当我需要用它做一些事情时(clearTimeout)我就可以从那里抓取它。

注意我使用了这种方法,它适用于动态数量的元素,这是我认为你想要的。如果您需要更多解释,请告诉我们!