【问题标题】:TypeError: Property '$' of object [object Object] is not a function in jQuery 1.7.2TypeError:对象 [object Object] 的属性“$”不是 jQuery 1.7.2 中的函数
【发布时间】:2013-05-02 10:53:40
【问题描述】:

我在我的 JavaScript 错误日志中看到了许多这样的错误:

预期对象

TypeError: 对象 [object Object] 的属性“$”是 不是函数

不幸的是,当我自己尝试时,我无法在任何这些浏览器上复制错误。我突出显示的行是导致错误的行。

我读过一些关于“无冲突”模式的文章,这可能是个问题,但通过查看下面的代码,我看不出问题出在哪里。

我使用的是 jQuery 1.7.2,它是从我的服务器而不是 CDN 提供的:

<script type="text/javascript" src="/scripts/jquery/jquery-1.7.2.min.js"></script>

我的代码:

$(function() {

    $('.imgCell').live("mouseenter", function() {
        if($(this).find('a img').length > 1) { // this line throws the error
            $(this).find('a img:eq(0)').hide();
        }   
    });

});

它似乎也不会影响特定的浏览器,因为以下浏览器会受到影响:Chrome 26、Chromium 25、Firefox 10、Firefox 14、Firefox 16、Firefox 20、IE 10、IE 8、IE 9、Mobile Safari 6

【问题讨论】:

  • 如何引用 Jquery 文件?是通过 CDN 还是在本地复制?
  • 从 jQuery 1.7 开始,不推荐使用 .live() 方法。使用 .on() 附加事件处理程序。
  • @Liam 我在本地有一个缩小版的 jQuery 1.7.2。我已经更新了我的问题。
  • 当然你的 jquery 代码被包裹在一个
  • @Ravi 这会导致错误吗?为什么我使用这些浏览器时看不到它?

标签: javascript jquery object client-side jquery-1.7


【解决方案1】:

从 jQuery 1.7 开始,不推荐使用 .live() 方法。使用 .on() 附加事件处理程序。

$(document).on("mouseenter",'.imgCell', function() {
        //do something
    });

如果你使用的是 CDN,那么你需要为它编写 fallback

<script type="text/javascript" src="//ajax.microsoft.com/ajax/jquery/jquery-1.9.2.min.js"></script>
<script type="text/javascript">
if (typeof jQuery == 'undefined') { // load your JS file if CDN failed 
    document.write(unescape("%3Cscript src='/js/jquery-1.9.2.min.js' type='text/javascript'%3E%3C/script%3E"));   
}
</script>

【讨论】:

  • 不,你没有在这里使用委托!应该完全等同于 live: $(document).on('mouseenter','.imgCell',function(){...});顺便说一句,这与OP的问题无关
  • document 不是标签元素而是对象:$(document) not $('document')
  • 感谢您指出 live 已弃用,但这就是发生错误的原因吗?另外,live 行而不是它后面的行不会出错吗?
  • @Ravi 第一行的代码中似乎存在语法错误(缺少逗号)。
  • @Ravi 我肯定会尝试一下,但由于我自己似乎没有看到问题并且无法确认它已解决,我将等到这在我的 JS 错误日志中清除标记为已接受。谢谢。
【解决方案2】:

例如使用 'jQuery' 而不是 $ 符号

jQuery(this).find('a img').length > 1

【讨论】:

  • 为什么错误所在的行会导致错误,但行中对$的引用却没有错误?
  • 我没听懂你的意思,你能解释一下你的评论吗?前一段时间我遇到了同样的问题,并应用了解决该错误的上述解决方案。让我知道它是否适合你。
  • 好吧,从您的回答来看,对$ 的引用是一个问题。但是在上面的行中有对$的引用,但它并没有出错。为什么会这样?顺便说一句,我没有对你投反对票。
猜你喜欢
  • 2013-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-03
  • 1970-01-01
  • 2012-09-04
  • 2013-07-20
  • 2019-08-12
相关资源
最近更新 更多