【问题标题】:Jquery Hover issues - script called several timesJquery Hover 问题 - 多次调用脚本
【发布时间】:2013-02-05 16:57:17
【问题描述】:

我有一个简单的脚本,其中一个按钮包含在一个带有标签 ID 的 DIV 中。悬停时显示另一个具有内容 id 的 div。两个 DIV 都包含在 ID 为 basket-top 的 DIV 中。悬停调用附加到此 div。 这是 HTML:

<div id="basket-top">
    <div id="content"><br />
            <br />
            content here<br />
            <br />
    </div>
    <div id="label">label here</div>
</div><!-- /basket-top -->

这里是 JS:

$("#basket-top").hover( function () {
    $("#basket-top #content").slideDown(500);
}, function () {
    $("#basket-top #content").slideUp(500);
});

这工作正常,直到用户快速进出,一遍又一遍地调用该函数并且图层上下滑动几次。 如果上一个动作没有完成,有没有办法阻止函数被调用?

【问题讨论】:

标签: jquery hover


【解决方案1】:

当您将鼠标悬停在 label 上时,这将显示 content 分区

$("#content").hide();
$("#label").hover(function () {
    $("#content").stop(true, true).slideDown(500);
}, function () {
    $("#content").stop(true, true).slideUp(500);
});

JsFIDDLE HERE

另外,请注意,您应该仔细检查您在此处提出的所有问题并接受正确的答案。当您发布新问题时,这将使其他人想要帮助您。并感谢那些花时间帮助你的人。

【讨论】:

  • 您好,感谢您的帮助。添加 .stop() 已经解决了问题。该事件仍然必须附加到#basket-top,因此当#label 在悬停时被按下,这甚至会立即调用鼠标。回复您的旁注,我相信一直感谢人们通过留言来提供帮助。我猜你的意思是我应该回答“这篇文章对你有用吗”。有些我以前没有注意到它,将来也会。谢谢你的评论
  • @user1620090,您可以接受正确答案,这就是问题左侧绿色勾号的含义。通过接受答案,它让每个人都知道您得到了所提供答案的帮助
【解决方案2】:

首先,"#basket-top #content" 是不必要的,因为 ID 必须是唯一的。 "#content" 就足够了。二、看jQuery的.stop()函数。

$("#basket-top").hover( function () {
    $("#content").stop(true,true).slideDown(500);
}, function () {
    $("#content").stop(true,true).slideUp(500);
});

【讨论】:

  • 谢谢,它可以双向工作,但你是对的 #content 是独一无二的,所以我可以在没有 #basket-top 的情况下使用它。非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-20
  • 1970-01-01
  • 2021-10-27
相关资源
最近更新 更多