未捕获的类型错误:$(...).magnificPopup 不是函数

Posted

技术标签:

【中文标题】未捕获的类型错误:$(...).magnificPopup 不是函数【英文标题】:Uncaught TypeError: $(...).magnificPopup is not a function 【发布时间】:2019-06-06 18:11:27 【问题描述】:

我有以下标记(注意它是通过 php eval 函数呈现的):

 <div class="my-gallery">
      ...
 </div>

 <script src="//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

 <script>

   $.getScript("//cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/jquery.magnific-popup.min.js")
         .done(function() 

              $('.my-gallery').magnificPopup(
                  type: 'image',
                  gallery: 
                     enabled: true
                  
             ); 

        )
       .fail(function() 
            console.log('fail');
       );

 </script>

但是我收到以下错误:

Uncaught TypeError: $(...).magnificPopup is not a function

* 更新 *

当更改代码以使其工作时:

 <script src="//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/jquery.magnific-popup.min.js"></script>

 <script>

       $('.my-gallery').magnificPopup(
                  type: 'image',
                  gallery: 
                     enabled: true
                  
       ); 

 </script>

这很奇怪。为什么使用$.getScript() 方法时不起作用。 在网络选项卡中,它看起来像是拨打了两次电话,请参阅图片:

【问题讨论】:

我无法复制它:jsfiddle.net/barmar/bc4f6k9h/1。您是否有机会加载多个 jQuery 副本?这通常会导致这样的错误。 @Barmar 只有一份 jQuery。这很奇怪,发生了一些非常奇怪的行为。 typeof $(".my-gallery").magnificPopup 打印什么? @Barmar 抱歉,我不明白你的意思? javascript 控制台中输入。错误表明它不是一个函数,看看它是否是其他类型的值会很有帮助。 【参考方案1】:

就我而言,卡巴斯基安全软件功能 antibaner 阻止了正常运行。尝试禁用您的防病毒软件。

【讨论】:

以上是关于未捕获的类型错误:$(...).magnificPopup 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

未捕获的类型错误未定义不是函数

未捕获的类型错误:无法读取未定义的属性 toLowerCase

JQuery:未捕获的类型错误:无法读取未定义的属性“调用”

未捕获的类型错误:无法读取文本字段上未定义错误的属性“toLowerCase”

未捕获的类型错误:数据表

为啥 Firebug 不为未定义的属性显示“未捕获的类型错误”?