jquery防止循环

发布于 2024-11-18 04:22:21 字数 457 浏览 4 评论 0原文

我有一个悬停滑动面板,当鼠标离开时需要延迟。 就像我现在拥有的那样,悬停触发器将导致多个循环,因此面板会疯狂地向上和向下移动。向下。 这是代码:

 $(document).ready(function(){
(function(){
  var trigger = $('li.HotelPaneltrigger');
  var panel = trigger.find('.panel').hide();
    trigger.mouseenter(function(){panel.slideDown('slow');}).mouseleave(function(){panel.slideUp('slow');});
 })();
});

我尝试过但没有成功: $(this).mouseleave(function () {
$(this).delay('500')panel.slideUp('slow');

i have a hover slide down panel which needs a delay when mouse leave.
Like i have it now, hovering the trigger will result in multiple loops, so the panel goes crazy up & down.
Here is the code:

 $(document).ready(function(){
(function(){
  var trigger = $('li.HotelPaneltrigger');
  var panel = trigger.find('.panel').hide();
    trigger.mouseenter(function(){panel.slideDown('slow');}).mouseleave(function(){panel.slideUp('slow');});
 })();
});

I tried this without success:
$(this).mouseleave(function () {
$(this).delay('500')panel.slideUp('slow');

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦一生花开无言 2024-11-25 04:22:21

我不太确定我是否正确,但我认为调用 .stop() 将为您做到这一点。

panel.stop(true, true).slideDown('slow');

panel.stop(true, true).delay(500).slideUp('slow');

参考:.stop()

I'm not exactly sure if I get you right, but I think invoking .stop() will do it for you.

panel.stop(true, true).slideDown('slow');

and

panel.stop(true, true).delay(500).slideUp('slow');

Reference: .stop()

和影子一齐双人舞 2024-11-25 04:22:21

slideDownslideUp 事件之前添加 .stop(true,true) 应该可以解决您的问题,这是我的想法。

Adding a .stop(true,true) before your slideDown and slideUp event should solve your problem, off the top of my head.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文