【问题标题】:jQuery toggleClass('class', 1000) toggles for only 1s then turns off, not toggles with a 1s animationjQuery toggleClass('class', 1000) 仅切换 1s 然后关闭,而不是切换 1s 动画
【发布时间】:2011-09-12 18:18:43
【问题描述】:

我在使用 jQuery UI 的 toggleClass() 时遇到问题,如果我关闭持续时间,它会按预期运行,但在指定的持续时间下,它只会在指定的持续时间内应用该类,然后删除该类。

以下代码在 jQuery 和 jQuery-UI 之后加载到单独的文件 (application.js) 中:

( jQuery );
(function() {
    $('#expandingbox').hover(function() {
       $(this).toggleClass("hover", 1000);
    })
    $('#expandingbox').click(function() {
       $(this).toggleClass("expanded", 1000);
    });
}).call(this);

我正在使用 Rails 3.1、Coffeescript 和 Sprockets 2。

这是我的代码示例: http://jsfiddle.net/27rNG/

我想要的行为是: - 用户悬停在图像上 - 图像动画向下一点 - 用户点击图片 - 图像 ainmates 下来了很多

我没有正确使用toggleClass吗?

更新: 用法正确,但未正确加载 JQuery UI。我通过从 Google 的 CDN 中单独加载与 Rails 3.1 Sprockets 文件分开的 JQuery UI 来解决此问题。

【问题讨论】:

    标签: jquery jquery-ui ruby-on-rails-3.1 sprockets


    【解决方案1】:

    您正在使用名为 JQuery UI 的 JQuery“库”的文档。 http://jqueryui.com/

    您实际调用的方法是 JQuery 的 toggleClass (http://api.jquery.com/toggleClass/),而不是 JQuery UI。

    可以看到第二个参数不是duration。

    这里是您的起点: http://jsfiddle.net/27rNG/16/

    【讨论】:

    • 谢谢!我认为在 JQuery 之后立即加载 JQuery UI 将覆盖 toggleClass() 方法,以接受第二个参数作为持续时间。在 jsfiddle 链接中,我将 JQuery UI 作为外部 js 文件加载。我会做更多的阅读。非常感谢你给了我这个起点!
    • 没问题。我自己对 JQuery 不是很熟悉,我的解决方案是绕过 JQuery UI。您最好的选择很可能是让依赖项工作而不是使用我的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 2012-03-11
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多