javascript - 多次启动 jQuery 函数

标签 javascript php jquery html css

我网站的菜单结构如下

<div class="header">
        <ul>
            <li id="menu__lnk_one"><a href="#">Home</a></li>
            <li><a href="#">Our Story</a></li>
            <li><a href="#">Tools</a></li>
            <li><a href="#">Technology</a></li>
            <li><a href="#">Pricing</a></li>
            <li><a href="#">Contact</a></li>
            <li><a href="#">Careers</a></li>
        </ul>
    </div>

并且我已经链接了 jquery 并编写了以下代码以将类添加到 menu__link_one 元素

$("#menu__lnk_one").hover(function(){
            $(this).addClass("animated shake");
        });

但是悬停函数只被调用一次。如何让它一直工作不止一次?

最佳答案

我认为问题在于您从未从列表项中删除“动画摇动”类。我假设你的动画摇动类有一个一次性的动画来摇动它。因此,一旦您将类添加到您的元素中,它就永远无法再添加它,因为它已经有了。要解决此问题,您需要在某个时间将其删除,最有可能是在您的鼠标停止悬停在其上时。

尝试将 on() 与“mouseenter”和“mouseleave”事件一起使用,而不是使用 hover():

$("#menu__lnk_one").on('mouseenter', function() {
  $(this).addClass("animated shake");
});

$("#menu__lnk_one").on('mouseleave', function() {
  $(this).removeClass("animated shake");
});

或者,您可以尝试在再次添加该类之前快速删除该类,虽然我不是 100% 这会起作用,但您可能需要在两者之间设置一个超时延迟。

$("#menu__lnk_one").hover(function() {
  $(this).removeClass("animated shake").addClass("animated shake");
});

以后一种方式进行操作会使您的元素在悬停一次后几乎永久保留摇动类,这可能不是最佳方式。

关于javascript - 多次启动 jQuery 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26071216/

相关文章:

php - 如何一次性阻止多个查询

javascript - 如何为许多实例重构此 JavaScript 代码

php - ajax请求页面重定向

php - 脚本必须在 24 小时内执行 X 次。我如何随机化它?

javascript - import.meta.url 的相对路径

javascript - ObjectID 不存储十六进制值

javascript - 优化jquery代码

php - PHP未检测到错误,但无法正确显示

jquery - 悬停时选择元素

javascript - 竞争条件与 bcrypt 的加密计时并添加新的 mongo db 文档