【问题标题】:Queuing tasks jQuery队列任务jQuery
【发布时间】:2011-02-08 20:23:01
【问题描述】:

我现在整个晚上都在寻找。而我仍然没有答案。 如何在 jQuery 中排队不同的操作? 我知道,每个人都说你必须使用回调方法,但这不起作用。 我只想将鼠标悬停在菜单上,它必须显示子项。当我离开时,子项目必须保留在那里。当我将鼠标悬停在其他项目上时,子项目必须消失,新的子菜单必须向下滑动。

我想使用 addClass 来执行此操作,以便检查菜单是否处于活动状态。但我做了一个例子只是为了看看它是否会工作(没有 addClass ...): http://jsfiddle.net/yBJvS/

我的代码是正确的,但是所有必须向上的元素 (ul li ul) 都会在新菜单下降的同时上升。这不是我想要的。

另外,我仍然没有得到 Stop() 属性。如果我把它放在 .slideDown 或 .slideUp 前面,那么整个动画就不再起作用了:S

谁能给我一个建议? 我想不通:(

提前致谢!

米兰

【问题讨论】:

  • 有一个很棒的 jquery 小插件,几乎可以完成您所描述的工作......请参阅:cherne.net/brian/resources/jquery.hoverIntent.html
  • @John K. 感谢您的回答,但它也应该适用于 stop() 对吗?我不喜欢插件中的timeOut :$ 我希望它快速流畅。还是 stop() 仅适用于 .animate?根据 jQuery Reference,它应该同时工作吗? :S

标签: jquery animation queue


【解决方案1】:

也许是这样的? Demo

我已经删除了分散核心功能的部分,但放置圆角等应该不是问题。

【讨论】:

  • 这正是我要寻找的!但我想问你三件事: 1)如果你将鼠标悬停在 1 或 2 或 3 上,有时它会上下移动? 2) 如何在您提供的代码中实现“stop()”? :$ 我无法让它工作(这可能会解决问题 #1) 3) 函数 (n) 中的“n”是什么意思?稍后在 slideDown 你使用回调'n'?那它回调什么? :$ 感谢您的时间和代码!它可以按我的意愿工作!谢谢!!!
  • 嗨。广告 3):看这里:api.jquery.com/queue/#queue2 n 参数只是提供了一个函数,您可以调用该函数来使队列中的下一个项目出队。广告 1) 和 2):我建议不要使用 stop()。它可能会混淆滑动动画。相反,我会更改标记以将滑动面板与菜单栏分开,这样 mouseenter 事件实际上只由菜单栏触发,而不是由滑入/滑出的面板触发。
  • 抱歉回答晚了:$ 我没有时间继续我正在做的项目。但是你真棒!非常感谢您的时间和帮助!对此,我真的非常感激!这正是我想要的!谢谢!
  • 编辑:我解决了 :) 但是当您将 Fiddle 代码放在一个 PHP 文件中时,它仍然无法在 IE 和 FF 中运行,这仍然很奇怪 :) 但我已经成功了!非常感谢!