jQuery 问题 - #<an Object> 没有方法

Posted

技术标签:

【中文标题】jQuery 问题 - #<an Object> 没有方法【英文标题】:jQuery issue - #<an Object> has no method 【发布时间】:2011-02-28 15:08:01 【问题描述】:

我最近尝试了很多 jQuery 插件,但一直收到这个错误……

(来源:shaunbellis.co.uk)

...不管我尝试使用什么插件。

我已经检查了 JS 文件的链接,这些文件都在那里并且工作正常。如果这有什么不同,我正在使用 Drupal。

我已经从主站点运行插件,以证明它们正在工作,并且我正在做正确的事情并且 100% 成功。

有什么想法吗?

更新:

我在页脚中调用的 jQuery 文件:

$(document).ready(function()           

$('#footer_holder').hide();

// Fancy Box
$("a.fancybox").fancybox(
    'hideOnContentClick': true,
    'titlePosition' : 'over',
    'transitionIn'  :   'elastic',
    'transitionOut' :   'elastic',
    'speedIn'       :   600, 
    'speedOut'      :   200, 
    'overlayShow'   :   false,
);

$("#homepage_slider").easySlider(
    auto: true, 
    continuous: true,
);

);

*note - 花哨的盒子可以正常工作(除非easySlider代码在它上面)。 jQuery 是由 Drupal 整理出来的。我正在运行 1.4 版

【问题讨论】:

你在哪里运行这个?它是否包含在 .ready() 函数中? 图片+1 :) - 请提供您调用 jQuery 和插件代码的标记 我已更新问题以显示所询问的信息。 我在学习 JQuery 时遇到过几次这个错误,现在两次遇到这个问题,结果我忘记了 (#section) 前面的“$”...希望这对某人有帮助... 【参考方案1】:

如果您多次包含 jQuery,也会出现此问题。

【讨论】:

哦,天哪。对我来说就是这样。另一个插件正在加载它自己的 jQuery 版本。谢谢。 @Aleks,我也是:) 每个认为他需要 jquery 的控件都包括 jquery。这解决了我的问题。每个人 - 尝试检查 $.fn(或 jQuery.fn)。如果数组为空 - 几乎都是关于错误输入的 url,或者不止一次包含 jquery。【参考方案2】:

忽略我。对不起大家。我打错了脚本的网址。感谢 Simon Ainley 朝着正确的方向前进。

再次抱歉。谢谢。

【讨论】:

……当然要感谢 jAndy 和 Pekka。 (我正在使用 IM 客户端与 Simon 交谈)。 我在同一个问题上花了半个小时才来到这里 - 我从未感到如此愚蠢! 是否可以将 Simon Ainley 的答案标记为正确答案?【参考方案3】:

我昨天遇到了这个问题,或者看起来很相似的问题。事实证明,我在混合 jQuery 和原型时并不小心。我在http://docs.jquery.com/Using_jQuery_with_Other_Libraries 找到了几个解决方案。我选择了

var $j = jQuery.noConflict();

但那里描述了其他合理的选择。

【讨论】:

【参考方案4】:

对于其他提出此问题的人:

我正在执行最简单的 jQuery,试图隐藏一个元素:

('#fileselection').hide();

我得到了相同类型的错误,“未捕获的类型错误:对象#fileselection没有方法'隐藏'

当然,现在很明显,但我只是省略了 jQuery 指示符“$”。代码应该是:

$('#fileselection').hide();

这解决了不费吹灰之力的问题。我希望这可以帮助某人节省几分钟的调试时间!

【讨论】:

这与问题有什么关系? hide 是内置的,而不是插件。 @FlavorScape,这个问题根本与插件无关......它与错误消息有关。重新阅读问题;他的插件信息只是附加信息。其他答案都没有谈论插件。大多数人遇到这个问题是因为他们在谷歌上搜索“Uncaught TypeError: Object #fileselection has no method 'hide'”,这是另一个检查你是否花了太多时间编程而没有看到$的项目。跨度> 它回答了错误的问题。 OP 清楚地表明对 jquery 的引用存在,因此您的解决方案与该问题无关。这是另一个问题的答案。很明显,字符串“#fileselection”没有方法隐藏,这不像jQuery版本冲突或库之间的插件冲突那么明显。 @FlavorScape 当然,欢迎您提出意见。但正如我所提到的,*** 的目的是寻找问题的答案,即使它们与原始 OP 的直接问题略有相干。看到在撰写本文时这个问题已被查看了 98116 次,并且到目前为止已经发现此答案有用 11 次,答案不言自明。通过否决它,你会觉得它没有价值,这并没有得到更大的图景。不过,谢谢你的观点。 但这不是同一类型的错误。人们在此处搜索您的术语的原因是因为您在答案中输入了未解决问题的术语。因此,对于其他 98111 用户来说,这是影响有效答案的噪音。回答切题的问题会给那些试图解决手头问题的人增加噪音。【参考方案5】:

如果你包含不同版本的jQuery,也可能会出现这个问题。

【讨论】:

【参考方案6】:

这通常与未正确使用选择器有关。检查并确保您使用的是预期的 jQuery 选择器。例如我在创建点击方法时遇到了这个问题:

$("[editButton]").click(function () 
    this.css("color", "red");
);

因为我没有为 jQuery 使用正确的选择器方法 $(this) 它给了我同样的错误。

很简单,检查你的选择器!

【讨论】:

以上是关于jQuery 问题 - #<an Object> 没有方法的主要内容,如果未能解决你的问题,请参考以下文章

PHP+ajax+jquery+flash实现老虎机抽奖

tmobst4an

jQuery动画特效实例教程

如何使用 jquery 从复杂的输入名称中获取值

jQuery我想向select中添加一个option,我这种方法有问题,求大神帮忙

从 jQuery 1.9.1 迁移到 1.10.1 导致错误:对象没有方法