jQuery“$(...).effect 不是函数”

Posted

技术标签:

【中文标题】jQuery“$(...).effect 不是函数”【英文标题】:jQuery "$(...).effect is not a function" 【发布时间】:2014-03-26 07:27:04 【问题描述】:

我已经在论坛中搜索过,但找不到任何方法来解决我在 jQuery 中的“效果”功能所遇到的问题。

我在代码中得到了错误TypeError: $(...).effect is not a function

$('div.step').removeClass('active');
$("div.step").effect('slide', direction: 'right', mode: 'hide', 500);
$('#step' + step + '').addClass('active');
$('#step' + step + '').effect('slide', direction: 'right', mode: 'show', 500);

我在<head></head> 中包含了这样的 jQuery 和 jQuery UI:

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>

但徒劳无功,你有什么想法吗?谢谢

【问题讨论】:

你能在jsfiddle复制这个吗? 你还有其他插件吗? 这是 jsfiddle :jsfiddle.net/gYP9m 除了由一些 $().fdatepicker()... 在同一个 document.ready 中触发的日期选择器之外,我没有包含任何其他插件。谢谢 我也遇到了同样的问题,只用了一个 jquery 库就解决了。所以不要覆盖它 【参考方案1】:

添加 jQueryUI 而不仅仅是 jQuery。 jQuery 不包含 effect() 函数: https://code.jquery.com/ui

【讨论】:

【参考方案2】:

对我来说,事实证明我的项目使用的是 Jquery-UI 的“自定义下载”版本,该版本已设置为排除 effects 插件。用完整版替换我的 Jquery UI 版本解决了我的问题。

【讨论】:

【参考方案3】:

我不知道问题是否解决了,但我找到了一种方法来复制带有动画功能的摇动功能,它就像一个魅力:

function shake() 
        var div = document.getElementById('yourElementID');
        var interval = 100;
        var distance = 10;
        var times = 4;

        $(div).css('position', 'relative');

        for (var iter = 0; iter < (times + 1) ; iter++) 
            $(div).animate(
                left: ((iter % 2 == 0 ? distance : distance * -1))
            , interval);
                                                                                                                  
        $(div).animate( left: 0 , interval);
    

这个解决方案属于thisSite,所有功劳归于他们。 我希望这对将来的某人有用,如果有,请将其标记为解决方案,问候。

【讨论】:

【参考方案4】:

尝试使用

$(document).ready(function () 
    $('div.step').removeClass('active');
    $("div.step").effect('slide', direction: 'right', mode: 'hide', 500);
    $('#step' + step + '').addClass('active');
    $('#step' + step + '').effect('slide', direction: 'right', mode: 'show', 500);

【讨论】:

【参考方案5】:

您需要将自定义脚本放在 jQuery 和 jQuery UI 声明之后,并将其包装在一个文档 ready() 函数中:

<body>
    ...
    <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
    <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
    <script type="text/javascript">
        $(document).ready(function() 
            ...
        );
    </script>
</body>

【讨论】:

这就是我所做的,检查上面的 jsfiddle 以查看我编码的内容。谢谢 @mentinet 您没有在 JSFiddle 示例中包含 jQuery UI。它可以正常工作:jsfiddle.net/JamesD/gYP9m/1. 好的,我可以看到。但是代码和我的一模一样,我包含了 jQuery UI……虽然它在我的机器上不起作用。你是如何在 jsfiddle 中包含 jQuery UI 的? 点击侧边栏中的外部资源并粘贴 URL。 好的,谢谢,它有效。虽然,我仍然无法让它在我的机器上运行。我尝试将$(document).Ready() 也放入head 中(我的页脚文件中有它)但仍然无法正常工作。

以上是关于jQuery“$(...).effect 不是函数”的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 知识体系

jQuery

jQuery插件开发:jQuery类方法

XMLHttpRequest、jQuery.ajax、jQuery.post、jQuery.get 有啥区别

Jquery

jquery的基本api