【问题标题】:Why does jQuery throw the error `fadeOut is not a function'?为什么jQuery会抛出错误'fadeOut is not a function'?
【发布时间】:2010-10-30 09:14:42
【问题描述】:

我正在使用 jQuery 并将这段代码放在我的 javascript 中:

function HideMe(itemID) {
    var myDiv = 'item_' + itemID;
    $(myDiv).fadeOut("slow");
}

但它给了我这个错误:fadeOut is not a function

【问题讨论】:

    标签: jquery


    【解决方案1】:

    你有liDiv 而不是myDiv。试试:

    function HideMe(itemID) {
        var myDiv = 'item_' + itemID;
        $(myDiv).fadeOut("slow");
    }
    

    【讨论】:

    • 我的错误.....我使用了myDiv,但这里写错了,但使用myDiv 无法正常工作。
    【解决方案2】:

    看起来 jquery 没有正确附加到页面。

    检查您对 jQuery 的链接。

    【讨论】:

    • 附上是因为我可以使用 $(myDiv).hide();完美运行
    • 您在 Head 部分链接到 jQuery?您是否在使用另一个也使用 $ 字符作为标识符的 javascript 库? (OpenLayers 就是这样一个库)
    【解决方案3】:

    另外,您可能在选择器中忘记了 #(除非您在标记中找到了类似 <item_1 /> 的内容)。

    var myDiv = '#item_' + itemID;
    

    jQuery 使用 CSS 选择器来搜索元素,因此如果没有 #,您将获得带有标签 item_x 而不是 ID 的每个元素。

    【讨论】:

    • 不过没关系,如果 jQuery 加载正确就不会弹出这个错误。
    • 你说得对,如果它仍然不起作用,我只是发布了这个。我认为变量命名是问题所在,但现在我发现我错了。
    【解决方案4】:

    即使选择器没有返回集合中的任何项目,如果正确加载了 jQuery,函数调用也会起作用(无论如何都不会生成此错误)。页面有冲突,或者根本没有加载。你可以试试

    jQuery(myDiv).fadeOut("slow");
    

    或者看看为什么 jQuery 没有被加载。

    P.S.:如果按 id 选择,请不要忘记选择器中的 #

    【讨论】:

    • 如何检查 jQuery 是否已加载。我可以使用 $(myDiv).hide();功能完美。但不是淡出
    【解决方案5】:

    试着把它藏在里面

    $(document).ready(function(){
    // your code. and don't forget the '#' in front of item.
    });
    

    看起来您正试图在 jQuery / DOM 加载之前调用该函数。

    【讨论】:

    • 当我使用 $(document).ready(function() { } 它说 $(document).ready 不是函数
    【解决方案6】:

    您在该页面上是否有另一个 javascript 库?看来您已经定义了 hide 函数和 $ 定义(例如,原型也有 hide 函数)。
    如果是这种情况,请尝试:

    jQuery("#item_0").fadeOut("slow");
    

    【讨论】:

    • “另一个 javascript 库”主要是 jQuery 本身的精简版,不包含动画效果。
    • @SunilKumar - slim version was release in 2016 - 这个答案7年后! ?
    • @Kobi 这并不意味着这不是人们仍在访问此页面的原因。 Sunil 的评论帮助了我。
    • @Martin - 当然!好在还有另一个答案可以解释这一点,所以我们不需要回答这个问题。
    【解决方案7】:

    如果您使用的是“slim”版本的 jQuery,就会发生这种情况。只有“完整”版本的 jQuery 包含动画效果。

    尝试从 jQuery downloads page 获取“完整”版本的 jQuery,并将其包含在您的页面中(或从您的页面中包含完整版本的 jQuery from a CDN)。

    【讨论】:

    【解决方案8】:

    我遇到了这个错误,因为我使用的是 jQuery 的精简版本。如果你下载完整版应该没问题。

    【讨论】:

      【解决方案9】:

      在将 .html 模板移动到 wordpress 模板时,我发现它经常弹出。

      两个原因,控制台错误可能具有欺骗性:

      1. 控制台中的错误可能让您走错路。这可能不是真正的问题。我的第一个原因是您设置要加载的 .js 文件的顺序。在 html easy 中,将它们按与主题模板相同的顺序放置。在 Wordpress 中,您需要以正确的顺序将它们排入队列,但如果它们没有以正确的顺序出现,也要设置优先级,

      2. 其次是 页眉或页脚中的 .js 文件。将它们移到页脚可以解决问题 - 经过一天的尝试调试问题后,它对我有用。通常没关系,但是对于有很多js库的复杂页面来说,可能!

      【讨论】:

        【解决方案10】:

        因为 Jquery 库的精简版本而发生在我身上。完整版的 Jquery 库包含动画。

        Jquery CDN 可在https://code.jquery.com/ 获得

        【讨论】:

          猜你喜欢
          • 2020-06-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-12
          • 2017-11-27
          • 2015-05-01
          • 2011-03-07
          相关资源
          最近更新 更多